Aakash Internship
Aakash Internship
ON
WEB DEVELOPMENT
Bachelors of
Computer Applications
Submitted By
Aakash
Enrollment No: A50504822058
DECLARATION
I, Aakash ,student of Bachelor of Computer Applications hereby declare that the project entitled
“WEB DEVELOPMENT” which is submitted by me to department of Computer Science &
Engineering, Amity School of Engineering & Technology, Amity University Haryana, in
partial fulfilment of the requirement for the award of the degree of Bachelor of Computer
Applications, has not been previously formed the basis for the award of any degree, diploma or
other similar title or recognition.
Name: Aakash
Enrollment No.: A50504822058
2|Page
Department of Computer Science and Engineering
CERTIFICATE
This is to certify that Aakash (Enrollment N0. A50504822058), student of BCA 5th semester,
Department of Computer Science & Engineering, ASET, Amity University Haryana, has done his
project on “Web Development” under our guidance and supervision during July-2024 and
August-2024.
Signature of Supervisor
3|Page
INTERNSHIP CERTIFICATE
4|Page
ACKNOWLEDGMENT
My journey of Web Development has been fruitful. I wanted to learn some new technologies
used in current times. I would like to express my thanks to a lot of people. Firstly, I would like
to thank Mr. Sanket Singh who mentored me in this journey. Next, I would also like to express
my thanks to my guide, Dr Rajesh Kumar Tyagi for their assistance in this project. Last but not
the least, I would also like to express my thanks to my parents for always providing constant
support and motivating me.
Thank you for helping me in this journey.
Name: Aakash
Enrollment No.: A50504822058
5|Page
ABSTRACT
The Image Resizer and Compressor is a web-based application developed using React, designed
to simplify the process of optimizing images for web use. This project aims to enhance user
experience by providing an intuitive interface for resizing and compressing images without
compromising quality, catering to users from various backgrounds, including web developers,
graphic designers, and everyday users. Key features of the application include bulk image
processing capabilities, customizable resizing options, and advanced compression algorithms that
balance file size and image clarity. The app leverages React's component-based architecture to
ensure a responsive design and efficient state management, facilitating seamless user interactions.
During development, challenges such as maintaining image quality post-compression, managing
diverse file formats, and ensuring cross-platform compatibility were successfully addressed,
resulting in a robust and user-friendly application.Future enhancements may encompass features
such as automated image optimization presets, integration with cloud storage services, and mobile
compatibility. By focusing on user needs and leveraging modern web technologies, the Image
Resizer and Compressor serves as an essential tool for anyone looking to improve their image
handling efficiency and enhance website performance.
6|Page
TABLE OF CONTENTS
CHAPTER 1: INTRODUCTION
1.1) WEB DEVELOPMENT 10
1.2) CLASSIFICATION OF WEB DEVELOPMENT 10
1.3) FRONT END DEVELOPER 11
1.4) IMPORTANCE OF WEB DEVELOPMENT IN THE DIGITAL ERA 11
1.5) HISTORY OF WEB DEVELOPMENT 12
CHAPTER 3: PROJECT
3.1) PROJECT INTRODUCTION 21
3.2) PROJECT DESCRIPTION AND SCOPE 22
3.3) DEVELOPMENT ENVIRONMENT 23
3.4) USE OF REACT JS IN PROJECT 23
3.5) DESIGN OF PROJECT 24
7|Page
3.6) WHY I CHOSE REACT JS FOR THIS PROJECT? 25
CHAPTER 4: RESULTS 26
8|Page
LIST OF FIGURES
9|Page
CHAPTER 1: INTRODUCTION
Web development refers to the creating, building, and maintaining of websites. It includes
aspects such as web design, web publishing, web programming, and database management. It is
the creation of an application that works over the internet i.e. websites.
Front-end web development, also known as client-side development is the practice of producing
HTML, CSS and JavaScript for a website or Web Application so that a user can see and interact
with them directly. The challenge associated with front end development is that the tools and
techniques used to create the front end of a website change constantly and so the developer
needs to constantly be aware of how the field is developing.
Back-end development means working on server-side software, which focuses on everything you
can’t see on a website. Back-end developers ensure the website performs correctly, focusing on
databases, back-end logic, application programming interface (APIs), architecture, and
servers. They use code that helps browsers communicate with databases, store, understand, and
delete data.
10 | P a g e
1.3) FRONT END DEVELOPER
A front-end developer, also known as a front-end web developer, is a professional responsible for
the design and implementation of the interface. The users require this interface so that they can
access the application in question. A web designer is a professional who creates a website’s
appearance and design. And the front-end developer makes sure that the design works online by
using coding languages such as CSS, HTML, and JavaScript.
The importance of web development in the digital era cannot be overstated. It is a linchpin in the
world's digital transformation, impacting various facets of our lives and our global economy. Here
are a few key points to emphasize:
User Experience: The success of online ventures hinges on the user experience. Web
development, especially front-end development, is responsible for crafting visually
appealing and user-friendly websites and applications. An exceptional user experience is
paramount in the digital era.
E-commerce: Web development is at the core of e-commerce platforms, enabling online
buying and selling. The digital era has witnessed an explosive growth in online shopping,
and web development is instrumental in creating seamless shopping experiences.
Education and Information: In the digital era, educational institutions and information
providers rely heavily on websites and online platforms. Web development supports the
creation of e-learning portals and information dissemination, making knowledge accessible
to a global audience.
Entertainment and Media: Streaming services, social media, and content sharing
platforms all depend on sophisticated web development. This sector has seen
unprecedented growth, driven by the ability to provide content to users worldwide.
Communication: In an era of instant communication, web development underpins email
services, social networking, and real-time messaging apps. It enables individuals and
businesses to stay connected and collaborate.
11 | P a g e
1.5) HISTORY OF WEB DEVELOPMENT
Web development has evolved from simple text-based web pages in the early 1990s to today's
sophisticated, interactive, and responsive websites and web applications. Over the years,
technologies like HTML, CSS, and JavaScript have transformed the web into a dynamic platform
for information sharing, collaboration, and e-commerce. The mobile revolution also prompted the
rise of responsive web design, ensuring websites adapt to various screen sizes. Modern web
development encompasses a broad range of tools and practices, with front-end and back-end
developers working together to create complex web solutions, making the web an integral part of
our daily lives and digital experiences.
12 | P a g e
CHAPTER 2: WEB DEVELOPMENT TECHNOLOGIES
HTML is the foundational language of the web. It is used to structure the content of a web page.
HTML uses tags to define the elements on a web page, such as headings, paragraphs, links,
images, forms, and more. These tags provide the basic structure and layout of the page's content.
<DOCTYPE! html> – A doctype or document type declaration is an instruction that tells the web
browser about the markup language in which the current page is written. It is not an element or
tag. The doctype declaration is not case-sensitive.
<html> – This tag is used to define the root element of HTML document. This tag tells the browser
that it is an HTML document. It is the second outer container element that contains all other
elements within it.
<head> – This tag is used to define the head portion of the HTML document that contains
information related to the document. Elements within the head tag are not visible on the front-end
of a webpage.
13 | P a g e
<body> – The body tag is used to enclose all the visible content of a webpage. In other words, the
body content is what the browser will show on the front end.
2.2) CSS:
Cascading Style Sheets, fondly referred to as CSS, is a simply designed language intended to
simplify the process of making web pages presentable. CSS allows you to apply styles to web
pages. More importantly, CSS enables you to do this independently of the HTML that makes up
each web page. It describes how a webpage should look: it prescribes colours, fonts, spacing, and
much more. In short, you can make your website look however you want. CSS lets developers and
designers define how it behaves, including how elements are positioned in the browser.
While HTML uses tags, CSS uses rulesets. CSS is easy to learn and understand, but it provides
powerful control over the presentation of an HTML document.
14 | P a g e
Fig 2.2) CSS
Selector: A selector in CSS is used to target and select specific HTML elements to apply
styles to.
Declaration: A declaration in CSS is a combination of a property and its corresponding
value.
Selector -- h1
15 | P a g e
Declaration -- {color:blue; font size:12px;}
2.3) JS:
JavaScript (JS) is the most popular lightweight, interpreted compiled programming language. It
can be used for both Client-side as well as Server-side developments. JavaScript also known as a
scripting language for web pages.
This section contains the list of all properties and methods of all JavaScript objects.
Array
ArrayBuffer
Atomics
BigInt
Boolean and dataView
Date
Error
Function
Generator
Intl
JSON
Map
Math
Number
16 | P a g e
Object
Promise
Proxy
Reflect
RegExp
String
Symbol
WeakMap
WeakSet
Expressions
17 | P a g e
2.3.4) Things that makes JavaScript demanding:
JavaScript is the most popular and hence the most loved language around the globe. Apart
from this, there are abundant reasons to become the most demanding. Below are a listing of a
few important points:
No need for compilers: Since JavaScript is an interpreted language, therefore it does not
need any compiler for compilation.
Used both Client and Server Side: Earlier JavaScript was used to build client-side
applications only, but with the evolution of its frameworks namely Node.js and
Express.js, it is now widely used for building server-side applications too.
Helps to build a complete solution: As we saw, JavaScript is widely used in both client
and server-side applications, therefore it helps us to build an end-to-end solution to a
given problem.
Used everywhere: JavaScript is so loved because it can be used anywhere. It can be used
to develop websites, games or mobile apps, etc.
Huge community support: JavaScript has a huge community of users and mentors who
love this language and take it’s legacy forward.
18 | P a g e
2.4.1) Key Features of React:
1) Component-Based Architecture:
React applications are built using components, which are reusable, independent pieces of the user
interface. Components can be simple elements like buttons or complex structures like forms, and
they manage their own state and lifecycle. This modular approach allows developers to build
complex UIs by composing smaller, isolated pieces.
2) Declarative Syntax:
React uses a declarative approach, meaning developers specify what they want the UI to look like
rather than how to achieve it. React automatically updates the UI when the underlying data
changes, reducing manual DOM manipulations and improving development efficiency.
3) JSX (JavaScript XML):
React introduces JSX, a syntax extension that allows developers to write HTML-like code directly
within JavaScript. JSX improves the readability of the code and makes it easier to visualize the
structure of components.
4) Virtual DOM:
19 | P a g e
React uses a Virtual DOM, an in-memory representation of the actual DOM. When the state of a
component changes, React creates a new virtual DOM, compares it with the previous version
(using a process called reconciliation), and only updates the actual DOM with the necessary
changes. This minimizes direct DOM manipulation and improves the performance of complex
UIs.
5) Unidirectional Data Flow:
React enforces a unidirectional (one-way) data flow, meaning data flows from parent components
to child components through props (properties). This makes it easier to track and debug the state
of the application.
6) Hooks:
Introduced in React 16.8, Hooks allow developers to use state and other React features in
functional components without needing to convert them into class components. Some common
hooks include useState, useEffect, and useContext.
7) Ecosystem and Integration:
React has a rich ecosystem with a vast number of third-party libraries and tools. It integrates well
with other technologies like Redux (for state management), React Router (for navigation), and
more. Additionally, React Native allows developers to build cross-platform mobile applications
using React.
2) Performance Optimizations:
The virtual DOM and efficient rendering mechanisms lead to improved performance, especially
for large-scale applications.
20 | P a g e
CHAPTER 3: PROJECT
This project focuses on developing a Dictation App using React, a modern JavaScript library for
building dynamic user interfaces. The app is designed to allow users to input or dictate text
seamlessly, providing real-time feedback and displaying the text dynamically. The primary
objective of the project is to offer a user-friendly platform where speech-to-text technology can be
used efficiently, enhancing productivity, accessibility, and convenience for a wide range of users,
such as students, professionals, or individuals with accessibility needs.
By leveraging React's component-based architecture, the application is structured into modular,
reusable components that handle specific functionalities, such as the text input area, dictation
controls, and real-time text display. This approach not only enhances maintainability but also
allows for easy scaling of the app in the future, whether by adding new features or extending
existing ones.
The React hooks like useState and useEffect are used to manage the state of the application and
handle real-time updates to the user interface. This ensures that user inputs are processed and
displayed immediately without reloading the page, providing a smooth and efficient experience.
In addition, the virtual DOM in React ensures that only the necessary parts of the user interface
are updated, optimizing performance and ensuring that the app remains responsive even when
handling large amounts of text. This makes the app well-suited for scenarios where users need to
dictate lengthy paragraphs or documents.
The project also integrates third-party libraries or browser APIs for the speech-to-text
functionality, enabling users to dictate text using their voice. This feature increases the app's
accessibility, catering to individuals with disabilities or those who prefer dictation over typing.
21 | P a g e
converting voice inputs into text with the help of modern web technologies. The goal of the app is
to enhance productivity by minimizing the need for manual typing, making it especially useful for
note-taking, writing documents, or creating transcriptions.
Key Features:
Voice-to-Text Conversion: The core feature of the app allows users to input speech via their
microphone, which is then converted into text in real time using the Web Speech API or other
third-party libraries.
Real-Time Text Updates: The app dynamically updates the text field as the user dictates or types.
React’s state management ensures that the input field reflects changes instantly without refreshing
the page, providing a smooth and responsive experience.
User Interface: The UI is designed to be simple and intuitive, ensuring accessibility for users of all
skill levels. It includes essential controls like "Start Dictation," "Stop Dictation," and "Clear Text"
buttons, allowing users to manage their dictation sessions easily.
Input Flexibility: Users can also manually enter text in addition to dictating it. The app captures
both types of input, giving users flexibility in how they interact with the app.
Cross-Browser Compatibility: The app is designed to work across different browsers, ensuring a
wide reach and usability regardless of the user's device or browser.
PROJECT SCOPE:
User-Friendly Interface: The project aims to replicate Razorpay's intuitive and user-friendly
interface, allowing users to seamlessly navigate and complete transactions. This includes the
design and layout of payment forms, buttons, and error handling.
Payment Processing: The core functionality of processing payments will be a central component
of the project. Users will be able to enter payment information, including card details, and make
secure transactions.
Real-Time Validation: A critical feature of the project, real-time validation using JavaScript, will
ensure that user inputs are validated as they are entered, reducing errors and enhancing the overall
user experience.
22 | P a g e
3.3) DEVELOPMENT ENVIRONMENT
Hardware Configuration:
• AMD Ryzen5
• 8 GB RAM
Software Configuration:
• OS: Windows 11
• Editor: Microsoft Visual Studio Code
React JS is fundamental to the development of the Dictation App, providing a dynamic and
efficient user interface. Here are the key roles React plays in the project:
Component-Based Architecture:
The app is built using modular components, allowing for reusable code and better organization.
Each part of the application, such as the text input area and control buttons, is encapsulated in its
own component, making maintenance easier.
State Management:
React’s useState hook is used to manage the state of the dictation process, such as starting,
stopping, and displaying text. This ensures that users see real-time updates as they dictate.
Virtual DOM:
React’s Virtual DOM optimizes rendering performance by updating only parts of the UI that have
changed. This provides smoother experience, particularly during real-time text input.
Event Handling:
React simplifies event management, allowing for intuitive user interactions, such as starting and
stopping dictation. This enhances the overall usability of the app.
Integration with APIs:
23 | P a g e
3.5) DESIGN OF PROJECT
The design of the Dictation App is structured to enhance modularity, organization, and user
experience. The project is primarily organized within the src folder, which contains all essential
files and directories:
App.js:
As the core component of the application, App.js is responsible for rendering the primary user
interface. It imports and manages various child components, including:
ControlButtons: Includes functionality for starting, stopping, and clearing the dictation.
TextDisplay: Dynamically displays the dictated text for user review. The logic for managing the
state of these components is centralized here, ensuring smooth interactions and updates.
index.js:
The index.js file serves as the entry point for the React application. It is responsible for rendering
the App component into the root HTML element of the web page. This file typically imports
necessary libraries, such as React and ReactDOM, and includes any global styles or providers
needed for the application.
The src folder contains all source code, assets, and styles used in the application, organized into
several key directories:
Components:
This directory houses all the React components essential for the app's functionality, including:
Photos.js: A component that may handle displaying images or photos related to the app’s context.
24 | P a g e
Meaning.js: Provides definitions or synonyms for dictated words, enriching the user experience
by offering immediate contextual information.
Results.js: Displays the results of the dictation, possibly including the final text and options to
save or edit it.
Icons and Other Graphics: Icons for buttons and other UI elements.
Styles: The styles directory contains CSS files that define the appearance of the app. It includes:
Global Styles: General styles applied throughout the app to maintain consistency.
Component-Specific Styles: CSS files for individual components to ensure a cohesive design and
layout.
Additional Files:
Alongside App.js and index.js, the src folder may also include:
index.css:
Contains global styles for the application, setting up the overall look and feel.
These may include files related to service workers, test setups, or configuration files that are
typically included when creating a new React project.
25 | P a g e
CHAPTER 4: RESULTS
26 | P a g e
Fig 4.2 Specifications
27 | P a g e
Fig 4.3 Features
28 | P a g e
CHAPTER 5: DEPLOYMENT OF THE PROJECT
5.1) INTRODUCTION
It is important to deploy our projects. Whatever skills we have learnt and applied the concepts into
a project needs to be shown to others. There are various websites and services which can be helpful
for the deployment of the projects. The project Image Compressor has been deployed using
github. It becomes easier to show our projects to anyone as it is not feasible to start the localhost
server everywhere.
29 | P a g e
CHAPTER 6: CONCLUSION AND FUTURE SCOPE
CONCLUSION
Image Resizer and Compressor serves as an essential tool for optimizing images efficiently,
catering to the diverse needs of users, from web developers to casual individuals. By simplifying
the process of resizing and compressing images without sacrificing quality, the application
enhances user productivity and improves website performance. With its user-friendly interface
and robust functionality, it addresses common challenges in image management. Looking ahead,
the potential for future enhancements—such as AI-driven optimization, cloud integration, and
advanced editing features—positions the application for continued relevance in an evolving
digital landscape. By focusing on user needs and leveraging modern technologies, the Image
Resizer and Compressor is poised to become a comprehensive solution for effective image
handling, ensuring that users can effortlessly manage their visual content with precision and
ease.
30 | P a g e
FUTURE SCOPE
Future enhancements for the Image Resizer and Compressor could include:
Automated Optimization: Implement AI-driven algorithms to automatically suggest
optimal resizing and compression settings based on image content and usage.
Cloud Integration: Enable users to save and access images from popular cloud storage
services, facilitating easier sharing and management.
Batch Processing Enhancements: Expand bulk processing capabilities to allow folder
uploads and custom presets for specific projects.
Advanced Editing Tools: Introduce basic editing features such as cropping, rotation, and
filtering to allow users to refine images before resizing.
User Accounts: Create personalized accounts for saving user preferences, templates, and a
history of processed images.
Mobile Version: Develop a mobile application for convenient image resizing and
compression on the go.
Support for More Formats: Expand the application to handle additional image formats,
including vectors and animations.
Real-time Preview: Provide a feature for users to preview images in real-time before and
after compression.
Performance Metrics: Offer analytics on the impact of optimized images on website
performance and load times.
Integration with Other Tools: Explore partnerships with website builders and CMS
platforms for seamless image uploading and optimization.
31 | P a g e
References
Books:
HTML and CSS: Design and Build Websites by Jon Duckett.
HTML & CSS: QuickStart Guide by David Sawyer McFarland.
JavaScript: The Definitive Guide by David Flanagan
Online Resources:
W3Schools HTML Tutorial
Mozilla Developer Network (MDN) HTML Reference
Bootstrap HTML Reference
Free Code Camp HTML Course
The Odin Project HTML Section
Chat GPT
YouTube
React Documentation
32 | P a g e