Internship Report Final PDF
Internship Report Final PDF
WEB DEVELOPMENT : A
Training report
Submitted
In partial fulfillment
For the award of the degree of
Bachelor of Technology
In Computer Science & Engineering
I
DECLARATION
I hereby declare that the Training Report entitled (“SUMMER TRAINING ON WEB
DEVELOPMENT”) is an authentic record of my own work as requirements of 4-6 Weeks
Training during the period from 01/06/2020 to 01/08/2020 for the award of degree of B. Tech.
(Computer Science & Engineering), GGSIPU, under the guidance of Mr. Colt Steele (Developer
& bootcamp instructor).
Ajay Pandey
Enroll No.: 46814802717
Date: _________________
Certified that the above statement made by the student is correct to the best of our knowledge and
belief.
Signatures
II
ACKNOWLEDGEMENT
Every Summer Training big or small is successful largely due to the effort of a number of
wonderful people who have always given their valuable advice or lent a helping hand. I
sincerely appreciate the inspiration; support and guidance of all those people who have been
instrumental in making this project a success.
I, Ajay Pandey, the student of Maharaja Agrasen Institute of Technology, New Delhi
(Computer Science & Technlogy), am extremely grateful to Colt Steele & Udemy for the
confidence bestowed in me and entrusting my training entitled “Web Development – Front
& Back end” with special reference to Udemy. At this juncture I feel deeply honored in
expressing my sincere thanks to Colt Steele for making the resources available at right time
and providing valuable insights leading to the successful completion of my training.
I express my gratitude to Mrs. Namita Gupta (HOD, CSE) for arranging the summer training
in good schedule. I also extend my gratitude to my course Guide Mr. Colt Steele
(Developer,Udemy) who assisted me in completing the project.
I would also like to thank all the Computer Science & Engineering faculty members of
Maharaja Agrasen Institute of Technology, New Delhi for their critical advice and
guidance without which this training would not have been possible.
Last but not the least I place a deep sense of gratitude to my family members and my friends
who have been constant source of inspiration during the preparation of this training report.
Ajay Pandey
B. Tech IVth Year
(Computer Science & Engineering)
III
ABSTRACT
In the 60 days’ summer training I had studied about WEB DEVELOPMENT Front and Back
end. I chose this training because it helps to develop dynamic web pages, and it is useful for
my career in Information technology Industry. Under the guidance of Colt Steele I learned
various new techniques of building websites from basics to advanced which is the very
foundation of big problems solved at various levels in the Industry. Apart from that I learned
to change the functionalities of complex web pages & make them more efficient by managing
lines of code & using the latest technologies. at the end I developed a project called
YELPCAMP A node.js application which helped me solidify my understanding of all the
latest tools and techniques learnt .
IV
ABOUT WEB DEVELOPMENT BOOTCAMP
When we're learning to program we often have to sacrifice learning the exciting and current
technologies in favor of the "beginner friendly" classes. With this course, we get the best of both
worlds. This is a course designed for the complete beginner, yet it covers some of the most
exciting and relevant topics in the industry.
The course is constantly updated with new content, projects, and modules. This course is also
unique in the way that it is structured and presented. Many other courses are just a long series of
"watch as I code" things, but this course is different. Colt Steele incorporated everything he learned in
his years of teaching to make this course not only more effective but more engaging. The course
includes:
Lectures
Code-Alongs
Projects
Exercises
Research Assignments
Slides
Readings
Continue to learn and grow as a developer, long after the course ends
Create a blog application from scratch using Express, MongoDB, and Semantic UI
Create static HTML and CSS portfolio sites and landing pages
Write Javascript functions, and understand scope and higher order functions
Write complex web apps with multiple models and data associations
This course is for anyone who wants to learn about web development, regardless of
previous experience . It's perfect for complete beginners with zero experience .It's also great for
anyone who does have some experience in a few of the technologies(like HTML and CSS) but not
all, If you want to take ONE COURSE to learn everything you need to know about web
development, take this course .
TABLE OF CONTENTS
Title Page no.
Certificate I
Declaration II
Acknowledgement III
Abstract IV
About the Organization V
Chapter 1: Introduction 1
1.1: Course Objectives
Chapter 2: Tools and Technologies Used 3
2.1: Hardware Requirements
2.2: Software Requirements
2.3: Web Deveopment
2.4: VS Code
Chapter 3: Technical Contents 5
Chapter 4: Project Report 8
Chapter 5: Codebase 21
Chapter 6: Snapshots 24
Chapter 7: Results & Discussions 25
Chapter 7: Conclusion & Future Scope 26
Chapter 8: Weekly Report 31
1: INTRODUCTION
Writing a thousand lines of code and turning that into a website is one of the creative and
complicated things for web developers. If you get excited seeing a lot of beautiful websites
and thinking to try your hands on it then we need to open your eyes telling some important
things that you should know as a web developer. Creating a website that gets a lot of users’
attention is not just about learning various programming languages, you also need to learn
some other concepts like DevTools, data formats, testing, APIs, authentication and a lot of
stuff like that once you will dig yourself into this field.
The most important skill or knowledge every developer should learn first is these
three basic building blocks i.e. HTML, CSS, and JavaScript. We will be using HTML and
CSS in frontend for interfaces. Just right click on our web browser and then selecting view
page source option does it. We can find the structure of your website where a lot of HTML
tags are used for different purposes.
CSS is also used in the frontend that decides the style, design, layout and how HTML
elements need to be displayed on the screen.
Javascript is high in demand nowadays and it is basically responsible for making our HTML
pages dynamic and interactive. Javascript also comes with a variety of languages like to make
our website more interactive. If we’re gonna specialize in javascript like MEAN Stack or
MERN stack then we’re gonna deep dive into this language because this one will be our
frontend as well as backend language.
You can do a lot of stuff using browser DevTools like debugging, editing HTML elements,
editing CSS properties, checking device, tracking javascript error, etc. Every developer
should be aware of using different tabs (elements, console, network, etc.) in DevTools to
make their work easier and faster. Depends on your browser you can use any DevTools or
whatever browser you are using. People generally prefer using Chrome DevTools to develop,
test and debug the web application but again it’s the choice of the developer which browser
he/she is using to develop the website.
1
This 8 week programme aims to headstart our foray in to the exciting world of web
development both front and back end. This course helped me master my basics as well as
implement those basics at advanced level throught various projects throughout the course, i
could hone my visualisation better and push the boundaries of development mindset. The
course covered initial front end development like HTML,CSS,BOOTSTRAP,JS,DOM,Jquery
as well as back end in depth including databases and advanced topics like RESTful Routing,
data association & authentication . This course is for all the developers who are looking
forward to enhance their development journey, and learn skills & technologies which will
help them to be a full stack developer faster .
2
2: TOOLS AND TECHNOLOGIES USED
2.3: JavaScript
3
As a multi-paradigm language, JavaScript supports event-driven, functional, and imperative
programming styles. It has application programming interfaces (APIs) for working with text,
dates, regular expressions, standard data structures, and the document object model (DOM).
However, the language itself does not include any input/output(I/O), such as networking,
storage, or graphics facilities, as the host environment (usually a web browser) provides those
APIs.
2.4: VS CODE
Visual Studio Code is a source-code editor developed by
Microsoft for Windows, Linux and macOS.It includes support for debugging, embedded Git
control and GitHub, syntax highlighting, intelligent code completion, snippets, and code
refactoring. It is highly customizable, allowing users to change the theme, keyboard
shortcuts, preferences, and install extensions that add additional functionality. The source
code is free and open source and released under the permissive MIT License. The compiled
binaries are freeware and free for private or commercial use.
Visual Studio Code is based on Electron, a framework which is used to
deploy Node.js applications for the desktop running on the Blink layout engine. Although it
uses the Electron framework, the software does not use Atom and instead employs the same
editor component (codenamed "Monaco") used in Azure DevOps (formerly called Visual
Studio Online and Visual Studio Team Services).
In the Stack Overflow 2019 Developer Survey, Visual Studio Code was ranked the most
popular developer environment tool, with 50.7% of 87,317 respondents claiming to use it.
4
TECHNICAL CONTENTS
COURSE CONTENTS
Basics & Logic building
Path to be a full stack developer
Installation & basics
VS Code local environment set up
Front End
HTML
CSS
JavaScript + jQuery
Bootstrap
Back end
Unix(Command line)
NodeJS
NPM
Express JS
MongoDB
6
Authentication
Passport JS
Authorization
7
YELPCAMP Implementation using web development AJAY PANDEY Enrollment No: 46814802717
Ajay Pandey
Computer Science & Engineering,
Maharaja Agrasen Institute of Technology,
New Delhi, India
ABSTRACT
Yelpcamp is an application for a fictional start up that allows us to add campgrounds for
other users to comment and rate, as view campgrounds added by other users. The project uses
various techniques which includes both front end and back end concepts like Node.js,
Express.js, Passport.js, jQuery and MongoDB . Following is what the home page looks like
of our final webpage -
I. INTRODUCTION
Yelp Camp is a fun application that allows you to view campgrounds with a short description.
Once you login or signup you can begin to create your own campgrounds that includes a title,
image address and short description.
YELPCAMP Implementation using web development AJAY PANDEY Enrollment No: 46814802717
YelpCamp is a more complex application built from scratch using the following technologies:
On the front-end I have used HTML5, CSS3, JavaScript, Bootstrap for responsive layout, and
jQuery. On the back-end I used NodeJS, NPM, ExpressJS, REST, Authentication,
Authorization and PassportJS. For datastore I used non-sql MongoDB. The application was
developed on Cloud9 IDE and source versioned with GIT. The application is hosted on
Heroku servers and MongoLab.
The scope of web development is finding new meanings of implementation in various fields.
As a web developer, We tend to create websites that are more responsive and less compex.
That is, we are responsible for behind-the-scenes coding and programming of websites.
On the other hand, we have to maintain a website’s speed, capacity in terms of traffic and
overall performance.
The swelling wave of e-Commerce dominance fueling the need for organizations to
establish their online presence has led to the emergence of Web Designing as an important
organizational function. More and more organizations are recruiting internal Web Designing
teams or are employing external agencies to dish out professional and functional websites for
them. The basic role of a web designer entails one to employ several skill sets in the
production and maintenance of Web Sites. To deliver appropriate quality, they would need to
harness knowledge in the following areas:
• Graphic design
• Interface design
• Authoring using standardized code and proprietary software
• User experience design
• Search engine optimization
No matter how advanced we go in the field of computer science and technology, Web
development will travel with us. Programming languages/platforms etc may change. But the
YELPCAMP Implementation using web development AJAY PANDEY Enrollment No: 46814802717
way they are treated by a computer remains . It might take a different way of
representation/ideology. But it stays on.
In this project that is an implementation of all the concepts learnt in the developer bootcamp,
I will be making a node.js application called yelpCamp where a user can visit & discover the
campgrounds, check in all the details, make comments about their experience and even they
can add their own campground after a simple sign up .
YelpCamp is based on the popular Yelp.com , the difference being it focuses on the
campgrounds that any host/owner can post for the users across the globe to check and review.
The application is hosted on heroku . The final result we will be trying to obtain here will
look like this -
welcome page
YELPCAMP Implementation using web development AJAY PANDEY Enrollment No: 46814802717
FUNCTIONALITIES
The above final result will consist of a lot of coding including both front and back end tools
and technologies and their combined effect, however at the end of the project we will finally
be able to achieve following functionalities -
Everyone can view the camps and reviews without signing up or logging in.
The user will have to login to edit the campground details or any comments.
The user can only edit/delete the campgrounds and comments that they have added.
HTML5 - markup language for creating web pages and web applications
CSS3 - used for describing the presentation of a document written in a markup
language
Bootstrap - free and open-source front-end web framework for designing websites
and web applications quickly
jQuery - cross-platform JavaScript library designed to simplify the client-side
scripting of HTML
DOM Manipulation - is a platform and language-neutral interface that allows
programs and scripts to dynamically access and update the content, structure, and
style of a document
Node.js - pen-source, cross-platform JavaScript run-time environment for executing
JavaScript code server-side
Express.js - for building web applications and APIs and connecting middleware
REST - REST (REpresentational State Transfer) is an architectural style for
developing web services
MongoDB - open-source cross-platform document-oriented NoSQL database
program to store details like users info, campgrounds info and comments
PassportJS - authentication middleware for Node.js. Extremely flexible and modular,
Passport can be unobtrusively dropped in to any Express-based web application
Data Associations - associating user data with the respective campgrounds and
comments using reference method
YELPCAMP Implementation using web development AJAY PANDEY Enrollment No: 46814802717
All of the work mentioned above has been done on VS Code editor by creating local
environment setup manually .
This is going to our very first step that will include setting up our basic structure of the
yelpCamp application, & for that we will be adding app.js file that allows us to require
express so that we can use it , let me list the app.js file :
After express is acquired for further using in our project, we use a few methods so that we
can avoid our code being less cleaned .
YELPCAMP Implementation using web development AJAY PANDEY Enrollment No: 46814802717
App.set() method lets us use ejs files without mentioning the .ejs extension
everytime, the parser is used to access body content & then finally we can add campground
images for the basic structure right now, although we are gonna replace them later through
our database but for now, this completes our first step . But our app.js file is not completed
just yet, we are going to come back everytime and edit this file because this is important for
most of the functionalities .
This is the most important and & difficult part of our project, which includes GET & POST
requests and affects the functionality of our project, we need to send appropriate response
based on the type of request made, analyse the request and finally revert back with an
appropriate response the user is looking for . We want to achieve this :
Although this includes a lot of coding & modifications in our app.js file as well as we need to
make new directory called views where ejs files are made, which will help our js file & html
to interact better , but here is a brief description of our js file
Although simple html files are good in most of the cases but sometimes if we want to make
our website look more responsive while keeping our code as clean as possible we need EJS
(embedded javascript files), these files help us in interacting between javascript & html & css
files .
Till now we have defined paths for our GET requests that we are going to get from
our user and now we need to define what functionality these ejs files will achieve when their
respective path will be called by user . We are going to look for the request in our ejs file, &
then actually render the data present in the ejs through res.render() method .
YELPCAMP Implementation using web development AJAY PANDEY Enrollment No: 46814802717
These headers and footers are used to achieve cleaning up of our code so that we don’t have
to write same html again and again what we do here is write it once and then link all the files
we want it in . These are also called EJS partials .
After defining the basic paths we now need to define those paths and most important one is
the campground.ejs that is when the user visits /campground then we need to manage the
request and send response, that response will be looking like this :
After setting our basic campground.ejs, we need to use navbars, jumbotrons & grid system
for making it responsive in mobile or any other device & not only our computer screen, here
is the code :
YELPCAMP Implementation using web development AJAY PANDEY Enrollment No: 46814802717
By allowing the user to signup or login we give them access to actually add a campground on
their own which however should reach all the fields presented in the earlier app. By the end
of this step we want to reach this final result:
YELPCAMP Implementation using web development AJAY PANDEY Enrollment No: 46814802717
The above form is saved & handled in a different ejs file made for creating a new
campground called new.ejs, this follows code given below:
new.ejs base
This project could have been made by both using relational or a non relational database, but
here we used mongoDB & mongoose, open-source cross-platform document-oriented
NoSQL database program to store details like users info, campgrounds info and comments .
Mongoose is an Object Data Modeling (ODM) library for MongoDB and Node.
js. It manages relationships between data, provides schema validation, and is used to translate
between objects in code and the representation of those objects in MongoDB.
For the data persistence part a lot of concepts were implemented in order to mostly less the
workload, following important techniques were used to provide the website the final touch :
RESTful Routing – Here we first learn about RESTful Routes by building a fully functional
Blog app with CRUD. We also used different framework called Semantic UI instead of
Bootstrap.
Data Association, Creating Comments - Here I learnt about data association concepts such
as embedded data, object references and using the same concepts to create comment
feedbacks for campgrounds.
Authentication - Most important section where we actually learn how to add users to
yelpcamp with proper authentication. Rather than creating our own authentication system,
Colt uses passport.js for the same. Here we learn about various aspects of passport such as
configuration, local strategy, plugging passport to our model.
Our app by now looks pretty cool. New users are able sign up, login , create campgrounds
etc. Finally CRUD functionality is completed for campgrounds and comments. Here is what
our final website homepage looks like :
YELPCAMP Implementation using web development AJAY PANDEY Enrollment No: 46814802717
STEP 8: DEPLOYMENT
II. CONCLUSIONS
The celpcamp website has been successfully implemented using all the concepts learnt during
the developer bootcamp, Overall, you end up with sufficient knowledge to build any web app
with CRUD functionality with Data Association and Authentication. This course gives us
good foundation to modern JS development.
YELPCAMP Implementation using web development AJAY PANDEY Enrollment No: 46814802717
III. ACKNOWLEDGMENTS
My sincere thanks to all the professors in college who taught me these concepts which are
then used to complete this project, Also I want to thank colt steele for such a good course, I
wish I had found this course earlier in my coding journey. I wandered too much through
beginner tutorials, Completing this course has boosted my confidence and I have found my
peace in JS development. I want to continue learning JS frameworks.
IV. REFERENCES
SNAPSHOTS
Home page
selected campground
YELPCAMP Implementation using web development AJAY PANDEY Enrollment No: 46814802717
sign up screen
login screen
Overall the training helped me to understand web development & its practical usage in a
better way and the project I undertook helped me to solidify these concepts. I learned a lot
from the bootcamp developer Mr Colt Steele, who himself is an ace developer He has been in
this thing since past several years & helped various beginners achieve their dream of being a
full stack developer .I am glad that the Department of Computer Science & Engineering,
MAIT provided me this opportunity to undergo this Summer Training. I wish to continue
working on concepts learnt & futher solidifying them in future too .
YELPCAMP Implementation using web development AJAY PANDEY Enrollment No: 46814802717
2. Adaptability
According to the statistics, 51.98 % of web page views worldwide are mobile internet traffic
in February 2020. It makes the experts believe that mobile-friendly sites are a must-have for
the year and beyond. Of course, in case you’re going to create a trendy website. Today,
people don’t want to use the site that is limited in functionality, hard-to-navigate, and is just
unappealing to the mobile audience. That’s why web development in the direction will be on-
demand. So, pay attention to the adaptability of the site to enhance the customer experience
and stay competitive.
Also working on your own project makes you always learn and learn more, discover new
ways and approaches. Thus, you’re updated on the latest trends and newest technologies.
4. The Bottomline
The future is here. As you could notice not all the trends 2020 mentioned above are new.
Some of them just keep on dominating in the field that requires lots of tech-savvy pros.
The list of hits is much longer and includes Cybersecurity, Motion UI, Frameworks, Hyper-
automation, etc. The range can be enhanced depending on the course of the business.
The market is evolving constantly making the web developers be aware of the trends,
changes and new solutions appeared. It’s a challenge, but along with that, it’s a driver for
progress.
YELPCAMP Implementation using web development AJAY PANDEY Enrollment No: 46814802717
WEEKLY REPORT
Week: 1
Description of activity, task, duty Performed with Team Performed Alone Time Spent
or Responsibility
HTML5 & CSS3 No Yes 13 hrs
List one thing that went particularly well this week (area of improvement, new task, etc)
List one thing that was most challenging this week (issue, problem, difficulty, etc.)
Getting over basic mistakes while coding
______________________________________________________________________
List one way you can improve your performance - would have given more time to small
projects rather than theory.
YELPCAMP Implementation using web development AJAY PANDEY Enrollment No: 46814802717
WEEKLY REPORT
Week: 2
Description of activity, task, duty Performed with Team Performed Alone Time Spent
or Responsibility
Bootstrap & JS Basics No Yes 17 hrs
List one thing that went particularly well this week (area of improvement, new task, etc)
List one thing that was most challenging this week (issue, problem, difficulty, etc.)
List one way you can improve your performance – Practising more on platforms .
YELPCAMP Implementation using web development AJAY PANDEY Enrollment No: 46814802717
WEEKLY REPORT
Week: 3
Description of activity, task, duty Performed with Team Performed Alone Time Spent
or Responsibility
Advanced JS & Jquery NO Yes 10 hrs
List one thing that went particularly well this week (area of improvement, new task, etc)
List one thing that was most challenging this week (issue, problem, difficulty, etc.)
List one way you can improve your performance – increasing the time spent on problem-
solving .
YELPCAMP Implementation using web development AJAY PANDEY Enrollment No: 46814802717
WEEKLY REPORT
Week: 4
Description of activity, task, duty Performed with Team Performed Alone Time Spent
or Responsibility
JS Advanced projects & Back No Yes 15 hrs
end basics
List one thing that went particularly well this week (area of improvement, new task, etc)
Tree basics were cleared while developing small games & projects.
List one thing that was most challenging this week (issue, problem, difficulty, etc.)
List one way you can improve your performance – By understanding JS better we can do
almost anything easily.
YELPCAMP Implementation using web development AJAY PANDEY Enrollment No: 46814802717
WEEKLY REPORT
Week: 5
Description of activity, task, duty Performed with Team Performed Alone Time Spent
or Responsibility
Node JS, express & mongoDB No Yes 12 hrs
List one thing that went particularly well this week (area of improvement, new task, etc)
List one thing that was most challenging this week (issue, problem, difficulty, etc.)
List one way you can improve your performance – Creating projects is the best way .
YELPCAMP Implementation using web development AJAY PANDEY Enrollment No: 46814802717
WEEKLY REPORT
Week: 6,7,8
Description of activity, task, duty Performed with Team Performed Alone Time Spent
or Responsibility
Advanced back end & yelpcamp No Yes 42 hrs
main project
List one thing that went particularly well this week (area of improvement, new task, etc)
List one thing that was most challenging this week (issue, problem, difficulty, etc.)
List one way you can improve your performance – Practise a lot of problems on platforms.