5th Sem Summer Training Report
5th Sem Summer Training Report
Development
Bachelor of Technology
In
Electronics and Communication Engineering
Submitted by:-
Shivang Pasricha (01196307321)
2021–2024
I
Certificate
Acknowledgement
I express my deep sense of gratitude to Ms. Sonia Malik for encouraging and enabling
me to take up the summer training, ‘Full Stack Web Development using MERN’,
required for this project. Also, I would like to express my sincere gratitude to Dr.
Pradeep Sangwan (HOD, Department of Electronics and Communication
Engineering, Maharaja Surajmal Institute of Technology, New Delhi) for allowing me
to undergo the summer training.
I would also like to acknowledge with thanks the kind of patronage, loving inspiration
and timely guidance from Col. Ranjit Singh, Director, MSIT, the Training
Coordinators and Teachers for their guidance, suggestions and constructive criticism
that helped this project grow immensely.
Last but not the least; I would like to thank my family and my friends who have
been a constant support to me.
Table of content
Title Page....................................................................................................................I
Certificate...................................................................................................................II
Acknowledgement….................................................................................................III
Chapter 1 – Introduction
1.1 Need & Objective
1.2 Methodology
1.2.1 Waterfall Model
1.3 Web Development
1.3.1 Front-End Development
1.3.2 Back-End Development
1.3.3 Full Stack Development
1.4 Software Used
1.4.1 VS code Editor
1.4.2 React.js
1.4.3 Node.js
1.4.4 Express.js
1.4.5 Mongo DB
1.4.6 Postman
1.4.7 Git & Github
1.4.8 Bootstrap
1.5 About Organization
Numerous people are constantly flooding movie theatres and cinemas for some
entertainment daily. The excitement of these customers can be crushed however by
the long lines involved in the manual process of booking and buying tickets. This is
why many businesses are opting to invest in digital ways for customers to access their
services.
There are several reasons why a business would opt for an online booking system.
Some of them include;
1.) Remote - An online system allows customers to access services from the
comfort of their homes. As long as a user has access to a phone or computer,
they can get easy access to the services available.
2.) Minimize Traffic - Making services easily accessible to the customers’ means
that fewer will be coming to purchase from the ticket window. This might also
cut costs for the business because they will not need so many at the ticket
windows. Employees will be able to direct their energies elsewhere.
3.) Constant Service - Online platforms don't need a break or the night off. They
can run constantly, giving every customer the benefit of accessing information
at any time of the day.
4.) Increased Revenue - When a business has an online service platform, there is
no limit to the number of people it can reach. It is not limited by the time
either because it operates 24/7. This means that promotions and ads can run
throughout and this could potentially boost sales.
1.2 Methodology
The following project utilizes the “Waterfall Methodology”
It is said that the Waterfall methodology follows the adage to “measure twice,
cut once.” The success of the Waterfall method depends on the amount and
quality of the work done on the front end, documenting everything in
advance, including the user interface, user stories, and all the features’
variations and outcomes. With most of the research done upfront, estimates of
the time needed for each requirement are more accurate, and this can provide
a more predictable release date. With a Waterfall project, if parameters
change along the way, it’s harder to change course than it is with agile
methodology.
b.) Design
c.) Implementation
A front-end dev takes care of layout, design and interactivity using HTML, CSS and
JavaScript. They take an idea from the drawing board and turn it into reality. What
you see and what you use, such as the visual aspect of the website, the drop-down
menus and the text, are all brought together by the front-end dev, who writes a series
of programs to bind and structure the elements, make them look good and add
interactivity. These programs are run through a browser.
The back-end developer engineers what is going on behind the scenes. This is where
the data is stored, and without this data, there would be no front-end. The back-end of
the web consists of the server that hosts the website, an application for running it and
a database to contain the data. The back-end development uses computer programs to
ensure that the server, the application and the database run smoothly together. To do
all this, they use a variety of server-side languages, like PHP, Ruby, Python and Java.
Full-stack developers take care of both the front-end and the back-end, and need to
know how the web works on all levels, in order to determine how the client- and
server-sides will relate. Popular stacks used are:
• LAMP stack: JavaScript - Linux - Apache - MySQL - PHP
• LEMP stack: JavaScript - Linux - Nginx - MySQL - PHP
• MEAN stack: JavaScript - Mongo DB – Express.js – Angular.js - Node.js
• MEAN stack: JavaScript - Mongo DB – Express.js – React.js - Node.js
• Django stack: JavaScript - Python – Django - MySQL
• Ruby on Rails: JavaScript - Ruby - SQLite – Rails
1.4 Software used
Visual Studio Code is a lightweight but powerful source code editor which runs on
your desktop and is available for Windows, Mac OS and Linux. It comes with built-
in support for JavaScript, Type Script and Node.js and has a rich ecosystem of
extensions for other languages and runtimes (such as C++, C#, Java, Python, PHP,
Go, .NET).
Out of the box, Visual Studio Code includes basic support for most common
programming languages. This basic support includes syntax highlighting, bracket
matching, code folding, and configurable snippets. Visual Studio Code also ships
with IntelliSense for JavaScript, Type Script, JSON, CSS, and HTML, as well as
debugging support for Node.js. Support for additional languages can be provided by
freely available extensions on the VS Code Marketplace.
Source control is a built-in feature of Visual Studio Code. It has a dedicated tab
inside of the menu bar where users can access version control settings and view
changes made to the current project. To use the feature, Visual Studio Code must be
linked to any supported version control system (Git, Apache Subversion, Perforce,
etc.). This allows users to create repositories as well as to make push and pull
requests directly from the Visual Studio Code program.
a) Code to learn
Visual Studio Code highlights keywords in your code in different colors to
help you easily identify coding patterns and learn faster.
Parallel native technology for creating reusable building blocks of the web —
Web Components. Advantage over React components — ability to create
components not only for React but also for Angular, other libraries/frameworks,
and for projects without any external dependency.
Another notable feature is the use of a virtual Document Object Model or virtual
DOM. React creates an in-memory data-structure cache, computes the resulting
differences, and then updates the browser's displayed DOM efficiently. This
process is called reconciliation. This allows the programmer to write code as if
the entire page is rendered on each change, while the React libraries only render
subcomponents that actually change. This selective rendering provides a major
performance boost. It saves the effort of recalculating the CSS style, layout for
the page and rendering for the entire page.
Hooks are functions that let developers "hook into" React state and lifecycle
features from function components. They make codes readable and easily
understandable. Hooks don’t work inside classes — they let you use React
without classes. React provides a few built in Hooks like use State, use Context,
use Reducer and use Effect to name a few. They are all stated in the Hooks API
Reference. use State and use Effect, which are the most used, are for controlling
states and side effects respectively in React Components.
Easy to learn - One of the great advantages of using react as it is very easier for a
beginner to learn it and make web and mobile applications using this front-end
framework. Anyone with a piece of previous basic knowledge in programming
can easily understand React compared to Angular. Angular is referred to as a '
Domain Specific Language ', so it is implied that it is quite difficult to understand
it. For Learning React, you need the basic knowledge of CSS and HTML.
Simple - React is one of the simplest open-source JavaScript front-end
frameworks for building web and mobile applications. It uses the component-
based approach, uses plain and simple JavaScript, and a well-defined lifecycle,
which makes react much simpler and easier. So that one can easily learn it and
build professional mobile and web applications. It uses a simple syntax named
JSX, which allows learners or developers to mix HTML with JavaScript to make
it easier for them to apply and use it for making efficient web and mobile
applications. However, it is not required to use JSX, you can either use plain
JavaScript, but as compared to JSX, JSX is the much better option over it due to
its simplicity and easier syntax.
Data Binding - React uses an application architecture known as Flux to control
data flow to components via one control point called the dispatcher. It uses one-
way data binding, which is easier to debug self-contained components of large
React applications.
Native Approach - React is used to create mobile applications (React Native) and
web applications. React allows the reusability of code and can easily support it,
which has many benefits and is much time saver. So simultaneously, at the same
time, we can make IOS, Web applications and Android.
Performance - React has very fast performance due to the immutability of data.
As the name suggests, we can predict that the immutable data structures never
change and allows you to compare direct object references instead of doing deep-
tree comparisons. The above reason ultimately affects the performance of reacting
and makes it faster.
Testability - React is very easy to test; whatever applications we are generating
from the react, whether mobile or web applications, it is much easier for us to test
it on react. There are some state functions in the react, where various react views
are treated as these functions of the states, and we can easily manipulate with the
state we pass to the react view. Also, we can take a look at the output and
triggered actions, functions, events, etc.
1.4.3 NODE.JS
Fig.1.4.5 Mongo DB
Mongo DB is a NoSQL database that scales by adding more and more servers
and increases productivity with its flexible document model.
Mongo DB provides high availability with replica sets. A replica set consists of
two or more copies of the data. Each replica-set member may act in the role of
primary or secondary replica at any time. All writes and reads are done on the
primary replica by default.
Secondary replicas maintain a copy of the data of the primary using built-in
replication. When a primary replica fails, the replica set automatically conducts
an election process to determine which secondary should become the primary.
Secondary can optionally serve read operations, but that data is only eventually
consistent by default.
Mongo DB can be used as a file system, called GridFS, with load balancing and
data replication features over multiple machines for storing files. This function,
called grid file system, is included with Mongo DB drivers. Mongo DB exposes
functions for file manipulation and content to developers. GridFS can be
accessed using mongo files utility or plugins for Nginx and lighttpd. GridFS
divides a file into parts, or chunks, and stores each of those chunks as a separate
document.
JavaScript can be used in queries, aggregation functions (such as Map Reduce),
and sent directly to the database to be executed.
Schema-less Database: Mongo DB has this one of the great features, which
means that one collection can hold different types of documents in it. Due to this
extraordinary feature, Mongo DB provides great flexibility to databases. In the
Mongo DB database, a single collection comprises multiple documents, and these
documents may further comprise the different numbers of values, fields, and so
on. One document doesn't need to be a must to relate with the other documents, as
it happens in relational databases.
Indexing: In the Mongo DB database, one can easily fetch out the necessary data
from the data pool due to this indexing feature. In Mongo DB, every data item has
provided a particular index, categorized as primary and secondary indices. With
this indexing, data retrieval is easier for the user; it saves a lot of time. If the data
is not indexed, the database searches each document with the specified query,
which takes lots of time and is inefficient.
Document Oriented: In Mongo DB, all the data has been stored in documents
instead of tables like SQL. Also, these documents have their unique object id. In
these documents, the informative data is stored in fields, i.e., key-value pairs
instead of columns and rows, making the data much more flexible and easier to
fetch out rather than applying queries for every data compared to RDBMS.
Faster – Mongo DB is very fast compared with relational database (RDBMS),
which is document-oriented. Each data item has its index value, making it easier
for us to retrieve any data without wasting time writing queries and making logic
accordingly.
Scalability: Mongo DB is more scalable with the help of sharding. It provides
horizontal scalability. Here the term sharding means distributing data on multiple
servers; in this, a large amount of data has been divided into multiple small data
chunks with the help of shard key. These types of data chunks are evenly
distributed across shards that reside across many physical servers.
High Performance: Mongo DB has very high performance and has data
persistency as compared to other databases due to the presence of its great features
like indexing, scalability, replication, etc.
Replication and Highly Available – Mongo DB increases the availability of data
due to creating multiple copies of data on different servers. Providing redundancy
or data replication ultimately protects the database from any hardware failure and
protects the data from being lost in the future. I suppose if one server was not
working or clashes due to error, and then data can easily be retrieved from other
active servers, who are currently working at that time, this will all be due to
redundancy of data.
Aggregation: This feature of Mongo DB is quite similar to the SQL GROUPBY
clause. This GROUPBY clause performs various operations on the grouped data
to get the unique or computed
Simple Environment Setup – Mongo DB has a very simple environment setup.
One can easily set up Mongo DB in their system without applying much effort.
1.4.6 POSTMAN
Postman is an API platform for building and using APIs. Postman simplifies each step
of the API lifecycle and streamlines collaboration so you can create better APIs—
faster. The Postman API Platform delivers high productivity for developers, great
quality for
APIs, and airtight governance for organizations across the world. Postman started in
2012 as a side project of software engineer Abhinav and Asthana, who wanted to
simplify API testing, while working at Yahoo Bangalore. He launched Postman as a
free app in the Chrome Web Store.
Fig. 1.4.7(1)
Fig.1.4.7(2) GitHub
GitHub, Inc. is a provider of Internet hosting for software development and version
control using Git. It offers the distributed version control and source code
management (SCM) functionality of Git, plus its own features. It provides access
control and several collaboration features such as bug tracking, feature requests, task
management, continuous integration and wikis for every project. Headquartered in
California, it has been a subsidiary of Microsoft since 2018.
It is commonly used to host open-source projects. As of January 2020, GitHub reports
having over 40 million users and more than 190 million repositories (including at
least 28 million public repositories). It is the largest source code host as of April 2020.
GitHub can be separated as the Git and the Hub. GitHub service includes access
controls as well as collaboration features like task management, repository hosting,
and team management.
1.4.8 BOOTSTRAP
Fig.1.4.8 Bootstrap
Brain Mentors
Brain Mentors Pvt. Ltd. is a Team of IT Professional’s. Our All Trainers worked as
Developers and having Software / Web Development Experience. Our Trainers
Worked with TOP MNC’s like (Nucleus Software, IVP, UST Global, HCL etc.).
Our Trainers also having Experience in Enterprise Application Development like UI
and UX Development, Mobile App Development & Artificial intelligence. Our
Trainers Deliver Corporate Trainings on Various MNC’s like UST Global, TPDDL,
IBM, India Mart, NIIT Technologies, H & R Block, CGI Fidelity, United Health
Group and many more.
Chapter 2- Why Should You Work With MERN
Stack?
There are many good reasons to use the MERN Stack. For example, it allows the
creation of a 3-tier architecture that includes frontend, backend, and database using
JavaScript and JSON.
Mongo DB, which is the base of the MERN stack, is designed to store JSON data
natively. Everything in it, including CLI and query language, is built using JSON and
JS. The No SQL database management system works well with Node JS and thus,
allows manipulating, representing, and storing JSON data at every tier of the
application.
It comes in a variant called Mongo DB Atlas that further eases database management
by offering an auto-scaling Mongo DB cluster on any cloud provider and with just a
few clicks.
Express is a server-side framework that wraps HTTP requests and responses and
makes mapping URLs to server-side functions easy. This perfectly complements the
React JS framework, a front-end JS framework for developing interactive UIs
in HTML while communicating with the server.
As the two technologies work with JSON, data flows seamlessly, making it possible
to develop fast and debug easily. To make sense of the entire system, you need to
understand only one language, i.e., JavaScript and the JSON document structure.
Like other popular web stacks, it is possible to develop whatever you want in MERN.
Nonetheless, it is ideal for cloud-based projects where you require intensive JSON
and dynamic web interfaces. A few examples of purposes where MERN is used are:
A calendar or a to-do app is a rudimentary project that can tell you a lot about the
mechanics of the MERN stack. You can design the frontend, i.e., the interface of the
calendar or to-do app using React JS.
Interactive Forums
Another suitable use case for MERN is an interactive forum, which can be a social
media platform or a website that allows users to share messages and communicate.
The topic of the interactive forum may or may not be predefined.
An interactive forum is just one use of the MERN stack for social media. These
include ads, posts, a mini web app embedded in the social media page, etc.
Chapter 3 – Project
This project is based on the basic MERN stack application development methodology.
The below image show the home page of the application.
The below image shows – How we can add any of our daily task in the website.
Step 1:- After typing in the task (as shown) you have to press .
Step 2:- After pressing , your Task will be added as shown in the image
below.
Step 3:- You will be shown all the tasks on the home page. If you want to
segregate the tasks based on: if its Complete or Incomplete, you can use the
button on the right of where you enter your tasks.
The above Image show all the tasks that you have completed.
The above Image shows all the task that are yet to be completed.
Step 4:- To delete the task that you have completed, simply press the
delete button.
2.) Cost-Effective
As MERN Stack uses one language throughout that is JavaScript so it will be
beneficial for a company to hire JavaScript experts only rather than hiring
different specialists for different technology. This move will save a lot of time
and money.
JavaScript has been used as the basic programming language for the project as it
is the language of the web and is being used extensively for web development.
View engines have been used as the framework for the client-side development
while Express is used for Node.js server-side development.
References