Internship Report PDF
Internship Report PDF
Submitted to
Department of Computer Science and Engineering
Summer Training In-charge at TINJRIT: Ms. Deepti Gour
By
Anurag Salvi
(Batch 2020-2024)
Branch: Computer Science and Engineering
Roll No.: 20ETCCS008
i
Certificate II
This is to certify that Mr. ANURAG SALVI, Bachelor of Computer Science & Engineering has
successfully completed her Summer Training on Full Stack Web Development with YHills
Edutech Pvt. Ltd. as partial fulfillment of Bachelor of Engineering CSE. The Summer
Training Report, Presentation and Project are genuine work done by his and the same is
being submitted for evaluation.
Signature
Ms. Deepti Gour
Assistant Professor (CSE Department)
Techno India NJR Institute of Technology, Udaipur
ii
ACKNOWLEDGMENTS
I take this opportunity to express my profound gratitude and deep regards to my guide Ms.
Deepti Gour for his exemplary guidance, monitoring and constant encouragement
throughout the course of the training. The blessing, help and guidance given by him time to
time shall carry me a long way in the journey of life on which I am about to embark .
I specially take the opportunity to thank our Mentor Mr. Nischal Aremanda for their valuable
Information and guidance which helped me in completing this task through various stages. I
also take this opportunity to express a deep sense of gratitude to all my teachers of
Computer Science and Engineering Department for their coordinal support.
I am thankful to the almighty and my parents for their moral support and my friends with
whom I shared my day-to-day experience and received lots of suggestions that improved my
quality of work.
Thanks
Anurag Salvi
20ETCCS008
iii
CONTENTS
Page No.
Certificate I …………...……………………………….................... i
Certificate II …………...……………………………….................... ii
iv
Chapter3: JavaScript Basic to Advanced……………………..............
15-20
3.1 JavaScript - Overview, Syntax, Placement, Variables …………………… 15
3.2 Comments in JavaScript ……………………………………………………. 16
3.3 JavaScript- Operators ………………………………………………………. 16
3.4 JavaScript –Decision Making Statements……….…............................... 16
3.5 JavaScript –Looping Statements….……………………………. 17
3.6 JavaScript –Functions and Functions Methods…………………….. 17
3.7 JavaScript – Events ………………………… 18
3.8 JavaScript – Cookie Page Redirection, Dialog Boxes …..…………….. 19
34
Conclusion ……………………………………………………………………….
35
Bibliography ……………………………………………………………………..
v
List of Tables:
vi
List of Figures:
Fig No. Title Page No.
Fig2.3.1 HTML Colors………………………………………… 4
vii
INTRODUCTION ABOUT YEPL:
COMPANY PROFILE:
Yhills Edutech Private Limited (YEPL) was incorporated in India on February 17,
2021. It is a registered startup operating as a Private Limited Indian Non-Government
Company. The company's registered office is in East Delhi, Delhi, India.
viii
Chapter 1
Introduction to Web Development
Web development is closely related to the job of designing the features and functionality of
apps (web design). The term development is usually reserved for the actual construction of
these things (that is to say, the programming of sites).
The basic tools involved in web development are programming languages called HTML
(Hypertext Markup Language), CSS (Cascading Style Sheets), and JavaScript. There are,
however, a number of other programs used to “manage” or facilitate the construction of
sites that would otherwise have to be done “from scratch” by writing code. A number of
content management systems (CMS) fall into this category, including WordPress, Joomla!,
Drupal, TYPO3, and Adobe Experience Manager, among others.
When you type a website's address in your browser, a Domain Name System (DNS)
translates it into an IP address. Your request is then broken into packets that traverse the
internet, reaching the destination server. The server processes your request, sends back
the requested data in packets, and your browser reassembles them to display the
webpage.
In essence, the internet is a massive web of communication protocols and data exchange,
allowing seamless global connectivity.
1
Chapter 2
Understanding HTML and CSS
1. HTML Basics:
HTML stands for Hypertext Markup Language.
It is the standard markup language used to create the structure of web
pages.
HTML documents are plain text files with a .html extension.
2. HTML Elements:
HTML documents consist of HTML elements.
Elements are the building blocks of HTML and are defined by tags.
Tags are enclosed in angle brackets (<>), and most come in pairs (opening
and closing tags).
3. HTML Attributes:
HTML elements can have attributes that provide additional information
about the element.
Attributes are always included in the opening tag and are usually in
name/value pairs.
Attributes modify or provide additional information about the element.
4. HTML Headings
HTML provides six levels of headings, from <h1> (the highest level) to <h6>
(the lowest level).
Headings define the structure and hierarchy of the content
5. Example of a Simple HTML Document:
A basic HTML document typically includes a head and a body.
<!DOCTYPE html>
<html lang ="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
2
<title>My First HTML Page</title>
</head>
<body>
<h1>Hello, World!</h1>
<p>This is a simple HTML page.</p>
</body>
</html>
This example includes the document type declaration, the opening and
closing HTML tags, head and body sections, meta tags for character set
and viewport settings, a title in the head, and some content in the body.
3
Comments are helpful for documenting code or temporarily excluding parts
of code.
● The <form> tag in HTML is used to create an HTML form, which is a container for
various form elements that allow users to input data.
● Let's break down the attributes commonly used with the <form> tag.
○ action attribute:
■ Specifies the URL where the form data should be sent when the
user submits the form.
■ It can be an absolute or relative URL.
○ method attribute
4
Common values are "get" and "post."
"GET" appends the form data to the URL, while "POST" sends it in
the request body.
● Forms are crucial for user interaction on websites, allowing users to provide input,
submit data, and interact with web applications.
CSS handles the look and feel part of a web page. Using CSS, you can control the color of
the text, the style of fonts, the spacing between paragraphs, how columns are sized and
laid out, what background images or colors are used, layout designs, variations in display
for different devices and screen sizes as well as a variety of other effects.
CSS is easy to learn and understand but it provides powerful control over the presentation
of an HTML document. Most commonly, CSS is combined with the markup languages
HTML or XHTML.
5
CSS is being used extensively in web and non web based applications :
All modern websites make use of CSS to beautify their web pages.
Embedded-device displays often use CSS to style their user interfaces.
RSS clients also let you apply CSS to feeds and feed entries.
Instant message clients also use CSS to format chat windows.
6
/* styles.css */
p{
color: green;
font-size: 20px;
}
Each type has its own use case, but external CSS is often preferred for larger projects to
maintain a modular and organized structure.
During the use of selectors, sometimes there is confusion occurs between id and class.
Both of them do not have any default styling information; they require CSS to select them
and apply it to style. Although both are used for selecting the element, they are different
from each other in many ways.
We can apply a class to various elements so The Id is unique in a page, and we can only
that it could be numerous times on a single apply it to one specific element.
page.
The class is assigned to an element and its The name of the Id starts with the "#" symbol
name starts with "." followed by the name of the followed by a unique id name.
class.
We can attach multiple class selectors to an We can attach only one ID selector to an
element. element.
Syntax: Syntax:
.class{ #id{
// declarations of CSS // declarations of CSS
} }
7
1. Color
● You can set the color of text and backgrounds using properties like color
and background-color. You can use color names, hexadecimal codes, RGB
values, etc.
● CSS:
body {
color: #333; /* Text color */
background-color: #f0f0f0; /* Background color */
}
2. Floating:
The float property is used for positioning elements to the left or right of their
container. It's often used in layouts, but keep in mind that it can affect the
layout of surrounding elements.
CSS:
.float-left {
float: left;
}
.float-right {
float: right;
}
3. Positions:
The position property is used to control the positioning method of an
element. Common values are static, relative, absolute, and fixed.
CSS
.relative-position {
position: relative;
top: 10px;
left: 20px;
}
.absolute-position {
position: absolute;
top: 50px;
8
right: 30px;
}
4. Margins:
Margins create space outside of an element. You can set margins for each
side individually or use the shorthand property.
CSS:
.margins-example {
margin-top: 10px;
margin-right: 20px;
margin-bottom: 15px;
margin-left: 5px;
}
5. Padding:
Padding is similar to margin, but it creates space inside the element. Like
margins, you can set paddings for each side individually.
CSS;
.padding-example {
padding-top: 10px;
padding-right: 20px;
padding-bottom: 15px;
padding-left: 5px;
}
6. Borders:
Borders can be applied to elements, and you can control their width, style,
and color.
CSS:
.border-example {
border: 2px solid #333; /* 2px solid border with color #333 */
border-radius: 5px; /* Rounded corners */
}
These are basic examples, and there's much more you can do with each of these
concepts. They form the building blocks for creating diverse and visually appealing layouts
on the web.
9
2.10 Flexbox in CSS
Flexbox, or the Flexible Box Layout, is a layout model in CSS that allows you to design
complex layouts more efficiently and with less code than traditional models. It provides an
easier way to distribute space and align items within a container, even when their size is
unknown or dynamic.
2. Flex Items:
The children of a flex container are referred to as flex items. By default, they
will align horizontally in a row. You can change this to a column with the
flex-direction property.
CSS:
.flex-container {
display: flex;
flex-direction: column; /* or row, row-reverse, column-reverse */
}
3. Justify-Content:
The justify-content property aligns flex items along the main axis. It helps
distribute space between and around content items.
CSS:
.flex-container {
display: flex;
justify-content: space-between; /* or center, flex-start, flex-end, space-
around, space-evenly */
10
}
.flex-item {
align-self: flex-end; /* Overrides align-items for this specific item */
}
5. Flex Wrap:
By default, flex items will try to fit on one line. The flex-wrap property can be
used to allow items to wrap onto multiple lines if needed.
CSS:
.flex-container {
display: flex;
flex-wrap: wrap; /* or no-wrap, wrap-reverse */
}
Flexbox provides a powerful and responsive way to handle layout challenges, making it a
popular choice for building user interfaces.
11
Figure 2.10.1 Visual Reference of CSS Flexbox
CSS Bootstrap is a widely used open-source front-end framework that simplifies web
development. Let’s know more about this:
12
Bootstrap is the most popular HTML, CSS and JavaScript framework for developing
a responsive and mobile friendly website.
It is absolutely free to download and use.
It is a front-end framework used for easier and faster web development.
It includes HTML and CSS based design templates for typography, forms, buttons,
tables, navigation, modals, image carousels and many others.
It can also use JavaScript plug-ins.
It facilitates you to create responsive designs.
History of Bootstrap
Bootstrap was developed by Mark Otto and Jacob Thornton at Twitter. It was released
as an open-source product in August 2011 on GitHub.
In June 2014 Bootstrap was the No.1 project on GitHub.
Advantages of Bootstrap
It is very easy to use. Anybody having basic knowledge of HTML and CSS can
use Bootstrap.
It facilitates users to develop a responsive website.
It is compatible on most of browsers like Chrome, Firefox, Internet Explorer,
Safari and Opera etc.
13
Figure 2.12.1 Transition starting at a point A and ended
at point B with no intermediate point.
Animations
CSS animation allows animation of HTML elements, unlike transition which only
performs a point A to point B operation but can also make many more operations in
between. Animations consist of two steps, the CSS animation defined in
stylesheets and a set of keyframes indicating the start and end states of the
animation.
Animations transitioning between two states are called implicit transitions as the
states between the start and final states are defined by the browser implicitly.
14
Chapter 3
JavaScript Basic to Advanced
15
4. Variables
Variables in JavaScript are containers for storing data values. They can be
declared using var, let, or const.let is used for variables that can be
reassigned, while const is used for constants whose values cannot be
changed after initialization.
1. if 2. if-else 3. if-else-if
4. switch case 4. Ternary (Conditional Operator)
16
3.5 JavaScript Looping Statements
In this Section I learnt about different types of Looping Statements of JavaScript
Language.
JavaScript provides several looping statements that allow you to repeatedly execute a
block of code as long as a specified condition is true or for a specified number of times.
Here are the main looping statements in JavaScript:
1. for Loop: The for loop is used when you know the number of iterations beforehand.
2. while Loop: The while loop continues to execute a block of code as long as the
specified condition is true.
3. do-while Loop: Similar to the while loop, the do-while loop executes a block of
code at least once, and then repeats as long as the specified condition is true.
4. for...in Loop: The for...in loop is used to iterate over the properties of an object. It
enumerates the properties of an object or the elements of an array.
5. for...of Loop: The for...of loop is introduced in ES6 and is used to iterate over
iterable objects such as arrays, strings, and collections.
6. forEach Method: For arrays, the forEach method is a concise way to iterate over
each element without the need for a traditional loop.
These looping statements provide flexibility for handling different scenarios when we need
to repeat a certain block of code. So, we canchoose the appropriate loop based on your
specific use case.
17
}
</script>
<input type="button" onclick="msg()" value="call function"/>
JavaScript Function Argument
We can call function by passing arguments. Let’s see the example of function that
has one argument.
<script>
function getcube(number){
alert(number*number*number);
}
</script>
<form>
<input type="button" value="click" onclick="getcube(4)"/>
</form>
Function with Return Value
We can call function that returns a value and use it in our program. Let’s see the
example of function that returns value.
<script>
function getInfo(){
return "hello javatpoint! How r u?";
}
</script>
<script>
document.write(getInfo());
</script>
JavaScript Function Methods
Let's see function methods with description.
Method Description
apply() It is used to call a function contains this value and a single array of
arguments.
bind() It is used to create a new function.
call() It is used to call a function contains this value and an argument list.
toString() It returns the result in a form of a string.
18
3.7 JavaScript – Events
The session will cover the use and implementation of major events.
In JavaScript, events are actions or occurrences that happen in the browser,
such as a user clicking a button, a page finishing loading, or a user pressing
a key. Handling events is a fundamental part of web development, and
JavaScript provides a way to respond to these events by using event
handlers.
Some of the HTML5 standard events are shown in the given figure: -
Mouse Events
Keyboard Events
Form Events
Window Events
Event Object
Event Handling
19
3.8 JavaScript – Cookies, Page Redirection and Dialog Boxes
In this module, I learnt about the Cookies, Page Redirection and Dialog Boxes.
20
Chapter 4
JavaScript Library – React JS
21
One-Way Data Binding
React implements one-way data binding, meaning that the data flow is
unidirectional. This makes it easier to understand how data changes over time and
reduces unexpected side effects.
These features contribute to making React a powerful and efficient library for building
modern, interactive user interfaces.
22
4.3 React Components
In this module I Understand the Heart of React JS whose called React Components.
React components are the building blocks of a React application. They can be either
functional or class-based, take in inputs called props, and may have internal state.
Components can be nested to create complex UIs. Functional components are simpler,
while class components have additional features like state and lifecycle methods. With the
introduction of Hooks, functional components can now handle state and lifecycle aspects.
Components are reusable, promoting a modular and maintainable code structure.
23
function ChildComponent(props) {
return <p>Hello, {props.name}!</p>;
}
● Accessing Props: Props are accessed in functional components through the
props parameter, and in class components through this.props.
2. Props Validation
Example:
import PropTypes from 'prop-types';
function MyComponent(props) {
// Component logic
return <div>{props.message}</div>;
}
MyComponent.propTypes = {
message: PropTypes.string.isRequired,
};
24
4.5 React State vs Props
In this Session I learnt about the major difference between React State Vs React Props.
25
3. Lifecycle Methods:
Lifecycle methods allow you to perform actions at different stages in a component's
life, such as when it is created, updated, or unmounted. Ex –‘componentDidMount’,
‘componentDidUpdate’, ‘componentWillUnmount’.
4. Props:
props (short for properties) represent the external inputs to a component, passed
down from a parent component.
5. setState() Method:
The setState method is used to update the state of a component. It is
asynchronous and schedules a re-render of the component.
6. forceUpdate() Method:
The forceUpdate method forces a re-render of the component, bypassing the usual
shouldComponentUpdate mechanism.
These are just a few key aspects of the React component API. The API provides
developers with the tools needed to create, manage, and interact with components
throughout their lifecycle.
26
Event declaration in React
<button onclick = {showMessage}>
Hello World
</button>
Remember, handling events in React is quite similar to handling events in regular HTML,
with a few React-specific nuances for synthetic events and component-based architecture.
Controlled Component: - In HTML, form elements typically maintain their own state
and update it according to the user input. In the controlled component, the input form
element is handled by the component rather than the DOM. Here, the mutable state is
kept in the state property and will be updated only with setState() method.
Controlled components have functions that govern the data passing into them on
every onChange event, rather than grabbing the data only once, e.g., when you click a
submit button. This data is then saved to state and updated with setState() method.
This makes component have better control over the form elements and data.
A controlled component takes its current value through props and notifies the changes
through callbacks like an onChange event. A parent component "controls" this
changes by handling the callback and managing its own state and then passing the
27
new values as props to the controlled component. It is also called as a "dumb
component."
From the given scenario, we can understand how conditional rendering works. Consider an
example of handling a login/logout button. The login and logout buttons will be separate
components. If a user logged in, render the logout component to display the logout button.
If a user not logged in, render the login component to display the login button. In React,
this situation is called as conditional rendering.
Let’s have a look at what are different ways of Conditional Rendering I have studied in this
module.
o if
o ternary operator
o logical && operator
o switch case operator
o Conditional Rendering with Enums
28
Chapter 5
Backend with Node JS
Node.js is often used for backend development because it is efficient and easy to use.
When building the backend of an application, you’ll use Node.js to create the server,
routes, and APIs. You can also use it to create webhooks and handle HTTP requests.
Node.js can also create a highly scalable application with its asynchronous, non-blocking
I/O model. This means that multiple client requests can be handled simultaneously, making
it an ideal choice for applications that handle a lot of data or require frequent interactions
with a database and web servers. Incoming requests may involve concurrent requests that
are handled simultaneously.
Node.js also has a huge selection of libraries and frameworks that can be used to make
application development easier. For example, Express.js is a popular framework for
creating web applications, while Socket.io is often used to create real-time applications.
29
Some Features of Node JS are –
REPL (Read-Eval-Print Loop)
REPL is a command-line interface that comes with Node.js. It provides an
interactive environment for developers to execute JavaScript code line by line. It
reads user input, evaluates the code, prints the result, and then awaits further input.
This iterative process is valuable for testing snippets of code, exploring language
features, and debugging
30
5.3 Mongo DB Database
In this Section I learnt about the databases and specially focus on MongoDB Database. A
database is a structured collection of data that is organized for efficient storage, retrieval,
and management. MongoDB is a NoSQL database, storing data in flexible, JSON-like
documents within collections.
2. CRUD Operations:
Create (Insert): db.collection.insertOne() and db.collection.insertMany() to add
documents.
Read (Query): db.collection.find() to retrieve documents based on specified
criteria.
Update: db.collection.updateOne() and db.collection.updateMany() to modify
existing documents.
Delete: db.collection.deleteOne() and db.collection.deleteMany() to remove
documents.
3. Relationship in MongoDB:
Embedded Documents: Embed one document inside another to represent
relationships.
References: Use references between documents to establish connections.
5. Data Validation:
Mongoose schemas define the structure of documents, enforcing data
validation rules.
31
Validators ensure that data adheres to predefined standards.
7. Connecting Documents:
Relationships are established using references or embedded documents.
‘$lookup’ in aggregation allows joining data from multiple collections.
32
Authentication (JWT Token)
Authentication (Base64 Encoding)
Authentication Controller
Authorization (Exception Handling)
Graded Questions
33
Conclusion
Working with a talented team at YHills has not only broadened my technical proficiency but
also provided me with insights into the intricacies of real-world web development projects.
I've had the privilege of contributing to various aspects of the development life cycle, from
conceptualizing and designing user interfaces to implementing robust server-side
functionalities.
One of the key takeaways from this internship has been the emphasis on continuous
learning. The ever-evolving nature of web technologies requires a proactive approach to
staying updated, and YHills has fostered a culture that encourages and supports ongoing
skill development. I've had the opportunity to explore emerging technologies, experiment
with different frameworks, and gain a deeper understanding of industry best practices.
Moreover, the mentorship and guidance I received from seasoned professionals at YHills
have been instrumental in shaping my approach to problem-solving and refining my coding
practices. The collaborative nature of the team has not only facilitated knowledge
exchange but has also created a supportive environment where everyone's contributions
are valued.
I am grateful for the experiences gained, the relationships built, and the knowledge
acquired during my time at YHills. This internship has been a stepping stone in my
professional development, and I look forward to applying and expanding upon the skills I've
cultivated here in my future endeavors.
34
Bibliography
➢ https://brainstation.io/career-guides/what-is-web-development
➢ https://developer.mozilla.org/en-
US/docs/Learn/Common_questions/Web_mechanics/How_does_the_Internet_wor
k
➢ https://www.tutorialspoint.com/css/what_is_css.htm
➢ https://www.javatpoint.com/css-class-vs-id
➢ https://www.reddit.com/r/webdev/comments/usln38/a_visual_reference_of_css_flex
box/?rdt=34358
➢ https://www.javatpoint.com/what-is-bootstrap
➢ https://www.geeksforgeeks.org/difference-between-animation-and-transition-in-css/
➢ https://www.javatpoint.com/javascript-operators
35