Web_Full_Stack_Virtual_Internship
Web_Full_Stack_Virtual_Internship
OFFERED BY
Web Full Stack Developer-AICTE- Edu Skills
Foundation
Supported by
Edu Skills ACADEMY
1
CERTIFICATE
This is to certify that the Internship Report entitled “Web Full Stack Developer
Virtual Internship” submitted by Lahari Pandiri (21H71A0525), to the DVR &
Dr. HS MIC College of Technology in partial fulfillment of the requirements for the
award of the Degree of Bachelor of Technology in Computer Science &
Engineering is a bonafide record of work.
Examiner 1 Examiner 2
2
3
ACKNOWLEDGEMENT
The satisfaction that accompanies the successful completion of any task would be incomplete
without the mention of the people who made it possible and whose constant guidance and
engagement crown all the efforts with success. I thank our college management and respected
Sri D. PANDURANGA RAO, CEO for providing us the necessary infrastructure to carry out
the Internship.
I express my sincere thanks to Dr. T. Vamsi Kiran, Principal who has been a great source of
inspiration and motivation for the internshipprogram.
I profoundly thank Dr. D. Prasad, Head, Department of CSE for permitting me to carry out
the internship.
I take this opportunity to express our thanks to one and all who directly or indirectly helped me
in bringing this effort to present form.
Finally, my special thanks go to my family for their continuous support and help throughout and
for their continual support and encouragement for the completion of the Internship on time.
4
ABSTRACT
Web Full Stack Developer:
As a passionate and motivated computer science student, I am seeking a full stack developer
internship to leverage my skills in both front-end and back-end technologies. With a solid
foundation in HTML, CSS, JavaScript, and frameworks like React and Node.js, I am eager to
contribute to dynamic projects while honing my expertise in web development. My experience in
collaborative environments has equipped me with strong problem-solving abilities and an
understanding of agile methodologies. I am excited to learn from industry professionals and
contribute to innovative solutions that enhance user experience and functionality. This internship
represents a pivotal opportunity for me to grow as a developer and make meaningful contributions
to a forward-thinking team.
Organization Information:
EDUSKILLS is a Non-profit organization which enables industry 4.0 ready digital workforce in
India with a vision to bridge the gap between academia & industry. They want to completely
disrupt the teaching methodologies and ICT based education system in India. We work closely
with all the important stakeholders in the ecosystem Students, Faculties, Education Institutions
and Central/State Governments by bring together through our skilling interventions.
Our three-pronged engine targets social and business impact by working holistically on
Education, Employment and Entrepreneurship.
Since inception, we have trained thousands of students, faculty and working professionals on
emerging technologies via technical bootcamps, hackathons, Summer &Winter Internship
Programs.
• Technology Bootcamps
• Hackathons
• Hands-on Training Programs
• Professional Development Programs
• Summer Practice Schools
5
Programs and opportunities:
This helps company to establish a healthy relationship between the customers and company or
institution. As the sales force administrator mainly focuses on three domains namely Business
Administration, Lightning Experience and Dashboards.
6
WEEKLY OVERVIEW OF INTERNSHIP ACTIVITIES
Week 1
Development Overview
Overview
Week 2
Week3
Module ASSESMENT
CSS JavaScript JavaScript JavaScript JavaScript
Overview
7
Week 4
Module ASSESMENT
JavaScript JavaScript JavaScript Tailwind Tailwind
Overview CSS CSS
Week 5
Week 6
8
Week 7
Week 8
Week 9
9
Week 10
Date 23/09/2024 24/09/2024 25/09/2024 26/09/2024 2709/2024 28/09/2024
Day Monday Tuesday Wednesday Saturday Monday Tuesday
Module MongoDB MongoDB MongoDB MongoDB ASSESSMENT GRAND
Overview ASSESMENT
10
INDEX
11
MODULE-1
HTML
HTML, or Hyper-Text Markup Language, is the standard markup language used to create and
design documents on the web. It provides the basic structure for web pages by using a series of
elements and tags to define content types such as headings, paragraphs, links, images, lists, and
more.
• Structure: HTML uses a nested structure with tags to define elements. For example:
• Tags: HTML elements are enclosed in tags, usually consisting of an opening tag and a
closing tag. Some elements are self-closing, like <img>.
• Attributes: HTML tags can have attributes that provide additional information. For
example:
• Semantic HTML: HTML5 introduced semantic elements that clearly describe their
meaning in a human- and machine-readable way (e.g., <header>, <footer>, <article>,
<section>).
• Compatibility: HTML is supported by all web browsers, making it a universal standard
for web development.
• Integration with Other Technologies: HTML can be combined with CSS (Cascading
Style Sheets) for styling and JavaScript for interactivity.
12
HTML serves as the backbone of web development, allowing developers to create structured
content that can be styled and made interactive.
• DOCTYPE Declaration: Specifies the version of HTML. For HTML5, it’s simply:
• HTML Element: The root element that contains all other elements.
• Head Element: Contains meta-information about the document, like its title and links to
stylesheets.
• Body Element: The main content of the document that users see.
13
Common HTML Elements
• Headings: HTML provides six levels of headings, <h1> to <h6>, with <h1> being the
highest.
• Links: Created using the <a> tag, which can link to external pages, email addresses, or
anchors within the same page.
• Images: Inserted using the <img> tag with attributes like src (source) and alt
(alternative text).
• Lists: HTML supports ordered (<ol>) and unordered lists (<ul>), with list items defined
by <li>.
• Tables: Created using <table>, <tr> (table row), <th> (table header), and <td> (table
data).
14
Forms
• Form Tag:
• Input Types: Various input types allow for different kinds of data:
Semantic HTML
Using semantic elements enhances accessibility and SEO. Some common semantic tags include:
HTML is foundational for web development, providing structure and meaning to content. By
mastering its elements and best practices, you can create well-structured, accessible, and
engaging web pages. If you have specific topics or examples you'd like to explore further, let me
know!
15
MODULE-2
CSS
CSS, or Cascading Style Sheets, is a stylesheet language used to describe the presentation of a
document written in HTML or XML. It allows developers to control the layout, colors, fonts, and
overall visual appearance of web pages, making them more attractive and user-friendly.
• Separation of Content and Presentation: CSS separates the content (HTML) from its
presentation, allowing for easier maintenance and a clearer structure.
• Selectors: CSS uses selectors to target HTML elements for styling. Common types
include:
• Box Model: Every HTML element is considered a box that consists of margins, borders,
padding, and the content itself. Understanding the box model is essential for layout
design.
• Responsive Design: CSS allows for responsive web design through media queries,
enabling websites to adapt their layout and styling based on the device’s screen size.
• Cascading and Specificity: CSS rules cascade, meaning styles can be overridden by
more specific rules. Specificity determines which styles are applied when multiple rules
match the same element.
Basic Syntax
CSS rules are defined using a selector followed by a declaration block, which contains
property-value pairs:
16
Example:
• Text Properties:
• Layout Properties:
o display: Specifies how an element is displayed (e.g., block, inline, flex, grid).
o position: Determines how an element is positioned in the document (e.g., static,
relative, absolute, fixed).
o float: Allows elements to be placed next to each other.
• Background Properties:
• Flexbox and Grid: CSS offers advanced layout techniques like Flexbox and CSS Grid
for creating complex, responsive designs.
17
MODULE-3
JAVASCRIPT
JavaScript is a high-level, dynamic, and interpreted programming language primarily used for
enhancing the interactivity and functionality of websites. It is one of the core technologies of
web development, alongside HTML and CSS, and allows developers to create interactive and
engaging user experiences.
Basic Syntax
JavaScript uses a syntax similar to C, with variables, functions, and control structures. Here’s a
simple example:
18
Common JavaScript Concepts
• Variables: Variables can be declared using var, let, or const. The choice affects scope
and mutability:
o Primitive types: string, number, boolean, null, undefined, symbol, and bigint.
o Reference types: Objects, arrays, and functions.
• Functions: Functions are first-class citizens in JavaScript. They can be defined using
function declarations or expressions, including arrow functions.
• Control Structures: JavaScript includes standard control structures like if, for, while,
and switch for flow control.
• Objects and Arrays:
o Objects: Collections of key-value pairs.
• DOM Manipulation: JavaScript can interact with the HTML DOM, allowing you to
dynamically change content and styles.
19
MODULE-4
TAILWIND CSS
Tailwind CSS is a utility-first CSS framework designed to make it easy to build custom user
interfaces without having to leave your HTML. Unlike traditional CSS frameworks that provide
pre-designed components, Tailwind offers low-level utility classes that allow for a more granular
approach to styling.
• Utility-First Approach: Tailwind promotes using utility classes, which are single-
purpose classes that apply a specific style. For example, classes like bg-blue-500, text-center,
and p-4 directly manipulate styling.
• Customizability: Tailwind is highly customizable. You can easily configure it to suit
your project’s design needs by modifying the tailwind.config.js file, allowing you to define
your colors, spacing, and breakpoints.
• Responsive Design: Tailwind simplifies responsive design with mobile-first breakpoints.
You can apply styles conditionally based on screen size by prefixing utility classes with
breakpoint indicators (e.g., md:bg-red-500 for medium screens).
• PurgeCSS Integration: Tailwind includes a built-in feature to remove unused CSS when
building for production. This helps keep file sizes small by purging classes that aren’t
used in your HTML.
• Component-Friendly: While Tailwind is utility-first, it also supports building reusable
components. You can create custom components by combining utilities, often with the
help of frameworks like React, Vue, or Angular.
• Dark Mode Support: Tailwind provides easy utilities for implementing dark mode
styles, allowing you to define different styles for light and dark themes.
Basic Usage
To get started with Tailwind CSS, you typically include it in your project via npm or a CDN.
Here’s a basic example of how you might use Tailwind in an HTML file:
20
Use Cases:
• Rapid Prototyping: Developers can quickly mock up designs without leaving their
HTML files.
• Custom Designs: Tailwind makes it easy to create unique, custom designs without being
constrained by predefined styles.
• Component Libraries: It’s commonly used to build design systems and component
libraries that need to be consistent across applications.
• Theme Customization: You can extend the default Tailwind theme to fit your design
needs. In tailwind.config.js, you can customize colors, spacing, font sizes, and more:
Fonts and Sizing: You can also add custom fonts and sizes:
21
• Using JIT Mode
Just-In-Time (JIT) mode generates styles on-demand as you write your HTML, which means you
can use arbitrary values and classes that aren’t predefined in your configuration.
• Component Extraction
When your HTML starts to get cluttered with utility classes, you can extract components. This
helps keep your code clean and maintainable. For instance, you can create a button component:
Etc..,
Tailwind CSS redefines how we think about styling web applications, moving away from
traditional CSS frameworks that often impose design constraints. By focusing on utility classes,
it offers developers unparalleled flexibility, encouraging a more streamlined and efficient
workflow. Whether you're building a small project or a large-scale application, Tailwind
provides the tools to make your design process faster and more enjoyable.
22
MODULE-5
VERSION CONTROL
Version control in web full stack development is a system that manages changes to code and
project files over time. It allows developers to track modifications, collaborate effectively, and
maintain a history of their work. Here’s a breakdown of its importance and common practices:
Key Concepts
• Repositories: A central place where all the code and project files are stored. This can be
local (on a developer's machine) or remote (on platforms like GitHub, GitLab, or
Bitbucket).
• Commits: Each change made to the codebase is recorded as a commit, which includes a
snapshot of the files, a unique identifier, and a message describing the change.
• Branches: Developers create branches to work on new features or fixes in isolation from
the main codebase (often called the main or master branch). This helps prevent
unfinished or experimental code from affecting the stable version.
• Merging: Once changes are tested and ready, branches can be merged back into the main
branch. This combines different lines of development.
• Conflict Resolution: When multiple developers modify the same part of the code,
conflicts can arise. Version control systems provide tools to help resolve these issues.
Common Tools
• Git: The most widely used version control system, known for its flexibility and powerful
branching/merging capabilities.
• GitHub/GitLab/Bitbucket: Online platforms that host Git repositories and provide
additional features like issue tracking, pull requests, and project management.
Workflows
• Git Flow:
23
• GitHub Flow:
o A simpler workflow, primarily for continuous deployment.
o Developers create branches for features or fixes, open pull requests for review,
and merge into the main branch once approved.
o Ideal for projects with frequent deployments.
• Trunk-Based Development:
o Developers work directly on a shared main branch.
o Small, frequent commits are encouraged to keep the main branch stable.
o Requires robust testing practices to avoid integration issues.
In full stack web development, version control is not just about managing code; it's a critical part
of the development process that fosters collaboration, maintains project integrity, and supports a
structured workflow. By employing best practices and leveraging advanced tools, teams can
enhance their productivity and code quality, ultimately leading to more successful projects.
Whether you’re working solo or in a large team, understanding and utilizing version control
effectively is essential for modern software development.
24
MODULE-6
WEB HOSTING
Web hosting refers to the service that enables individuals and organizations to make their
websites accessible on the internet. A web host provides the technologies and services required
for the website to be viewed on the web.
• Server:
➢ A powerful computer that stores website files and delivers them to users via the
internet. Servers can be physical (dedicated) or virtual (cloud-based).
• Domain Name:
➢ A human-readable address (e.g., www.example.com) that directs users to the IP
address of the server where the website is hosted.
• Bandwidth:
➢ The amount of data that can be transmitted from the server to users in a given
time period. More bandwidth allows more visitors and larger data transfers.
• Storage:
➢ The space available on the server to store website files, databases, and other
resources.
• Security:
➢ Measures such as SSL certificates, firewalls, and DDoS protection to safeguard
the website and user data.
25
Types of Web Hosting
• Shared Hosting:
❖ Multiple websites share a single server and its resources. It’s cost-effective and
suitable for small websites but may lead to slower performance if traffic spikes.
• VPS Hosting (Virtual Private Server):
❖ A single physical server is divided into multiple virtual servers, each with its own
dedicated resources. It offers more control and better performance than shared
hosting.
• Dedicated Hosting:
❖ An entire server is dedicated to a single website or application. This provides
maximum control, performance, and security, but it’s more expensive.
❖ It is more expensive.
• Cloud Hosting:
❖ Websites are hosted on a network of virtual servers that draw resources from a
pool. It offers scalability and reliability, as it can handle traffic spikes easily.
• Managed Hosting:
❖ The hosting provider manages the server and its maintenance, security, and
performance optimizations. This is ideal for those who prefer to focus on
development rather than server management.
• WordPress Hosting:
❖ Optimized specifically for WordPress websites, often including features like one-
click installations, automatic updates, and enhanced security tailored for
WordPress.
26
Emerging Trends in Web Hosting
• Serverless Hosting:
➢ This model allows developers to run applications without managing servers.
Resources are automatically scaled based on demand, making it cost-effective and
efficient for certain applications.
• Green Hosting:
➢ More providers are adopting environmentally friendly practices, such as using
renewable energy to power data centers. This trend appeals to eco-conscious
businesses and consumers.
• Containerization:
➢ Technologies like Docker enable developers to package applications in
containers, ensuring consistent environments from development to production.
Many hosting providers are starting to offer container-based solutions.
• Artificial Intelligence (AI) and Machine Learning (ML):
➢ Some hosting platforms are integrating AI/ML for optimized resource
management, predictive analytics, and improved customer support via chatbots.
• Edge Computing:
➢ As IoT and real-time applications grow, edge computing moves data processing
closer to the user, reducing latency. This is becoming increasingly relevant in web
hosting.
Web hosting is a foundational aspect of web development that ensures your website is accessible
and performs well. By understanding the different types of hosting and evaluating your needs,
you can choose the right hosting solution that aligns with your project's goals and budget.
Whether you're building a personal blog, a portfolio, or a complex application, selecting a
reliable web hosting provider is key to your site's success.
27
MODULE-7
SQL
SQL (Structured Query Language) is a standard programming language used to manage and
manipulate relational databases in web development. Here’s an overview of its significance and
functionality:
What is SQL?
SQL is used for querying, updating, and managing data in relational database management
systems (RDBMS) like MySQL, PostgreSQL, SQLite, and Microsoft SQL Server. It enables
developers to interact with databases efficiently.
• Data Retrieval:
➢ The SELECT statement allows developers to retrieve specific data from one or
more tables. For example, SELECT * FROM users retrieves all records from the
"users" table.
• Data Manipulation:
➢ SQL provides commands to insert, update, and delete data:
1. Insert: INSERT INTO users (name, email) VALUES ('Alice',
'[email protected]').
2. Update: UPDATE users SET email='[email protected]' WHERE
name='Alice'.
3. Delete: DELETE FROM users WHERE name='Alice'.
• Database Creation and Management:
➢ SQL allows for creating and modifying database structures, including tables,
indexes, and relationships. Commands include CREATE TABLE, ALTER
TABLE, and DROP TABLE.
➢ Commands include CREATE TABLE, ALTER TABLE, and DROP TABLE.
28
• Data Filtering and Sorting:
➢ Use WHERE clauses to filter records, and ORDER BY to sort results. For
example, SELECT * FROM users WHERE age > 18 ORDER BY name ASC.
• Joins:
➢ SQL enables combining data from multiple tables using joins (INNER JOIN,
LEFT JOIN, etc.), facilitating complex queries across related datasets.
• Data Management:
➢ SQL provides a powerful way to manage large amounts of structured data, which
is essential for dynamic web applications that require user interactions.
• Backend Integration:
➢ SQL databases often serve as the backbone for web applications, where server-
side languages (like PHP, Python, or Node.js) interact with the database to fetch
or update data.
• Security:
➢ Proper SQL usage includes implementing security practices like parameterized
queries to prevent SQL injection attacks, ensuring data integrity and security.
• Scalability:
➢ Many RDBMS support scalability options, allowing applications to grow as user
demand increases, making SQL suitable for both small and large-scale
applications.
• MySQL:
➢ Popular open-source database widely used in web applications, especially with
PHP and WordPress.
• PostgreSQL:
➢ An advanced open-source database known for its robustness and support for
complex queries and data types.
• SQLite:
➢ A lightweight, file-based database ideal for smaller applications and local
development.
• Microsoft SQL Server:
➢ A powerful RDBMS used in enterprise environments, particularly with .NET
applications.
SQL plays a vital role in web development by providing a robust framework for managing and
manipulating relational data. Its capabilities enable developers to build dynamic, data-driven
applications that are both efficient and secure. Understanding SQL is essential for anyone
involved in backend development or database management, as it directly impacts how
applications store and retrieve information.
29
MODULE-8
MONGODB
MongoDB is a popular NoSQL database widely used in web development for its flexibility,
scalability, and performance. Unlike traditional relational databases that store data in tables and
rows, MongoDB uses a document-oriented data model, allowing for more dynamic and complex
data structures. Here’s a detailed overview:
What is MongoDB?
MongoDB is a NoSQL database that stores data in JSON-like documents (BSON format), which
makes it schema-less and allows for varied data structures within the same collection. This
flexibility is particularly advantageous for modern web applications that require rapid
development and frequent changes.
• Document-Oriented Storage:
➢ Data is stored in documents (similar to JSON), making it easy to represent
complex data structures. Each document can have different fields, allowing for
more flexibility compared to rigid schemas.
• Scalability:
➢ MongoDB supports horizontal scaling through sharding, distributing data across
multiple servers. This enables applications to handle increased loads without
significant changes to the architecture.
• High Performance:
➢ Its design optimizes for high write and read throughput, making it suitable for
real-time applications. Indexing options further enhance query performance.
• Flexible Schema:
➢ The schema-less nature allows developers to iterate quickly and evolve the data
model without costly migrations. This is ideal for Agile development practices.
• Rich Query Language:
➢ MongoDB supports a powerful query language, enabling developers to perform
complex queries, aggregations, and data transformations.
• Built-in Replication and High Availability:
➢ MongoDB offers replica sets, which provide automatic failover and data
redundancy, ensuring high availability for applications.
30
Use Cases in Web Development
• MEAN/MERN Stack:
➢ MongoDB is often part of popular JavaScript-based stacks like MEAN
(MongoDB, Express.js, Angular, Node.js) and MERN (MongoDB, Express.js,
React, Node.js), allowing developers to use a unified language across the stack.
• APIs and Microservices:
➢ MongoDB integrates well with RESTful APIs and microservices, allowing for
easy data storage and retrieval in distributed architectures.
• Cloud Services:
➢ MongoDB Atlas is a cloud-based version of MongoDB that provides automated
backups, monitoring, and scaling, simplifying deployment and management for
developers.
Advantages of MongoDB
• Schema Flexibility:
➢ MongoDB’s schema-less design allows developers to modify the data structure
without downtime, facilitating agile development and quick iterations.
• Horizontal Scalability:
➢ The ability to shard data across multiple servers means that MongoDB can scale
out easily as data volumes grow, making it suitable for large applications with
increasing user loads.
• Rich Data Types:
➢ MongoDB supports a variety of data types, including arrays and nested
documents, which allows for more expressive data representation compared to
traditional relational databases.
31
• Geospatial Indexing:
➢ Built-in support for geospatial data enables the development of applications that
require location-based querying, such as mapping services and ride-sharing apps.
• Aggregation Framework:
➢ MongoDB’s aggregation framework provides powerful tools for data processing
and analysis, allowing for complex queries and transformations directly within the
database.
Disadvantages of MongoDB
• Data Consistency:
➢ As a NoSQL database, MongoDB uses eventual consistency for distributed data,
which can lead to scenarios where users see stale data. This is often mitigated by
proper application design.
• Learning Curve:
➢ Developers familiar with SQL and relational databases may face a learning curve
when adapting to MongoDB’s document model and query language.
• Limited Transactions:
➢ While MongoDB has improved its transaction capabilities (supporting multi-
document transactions since version 4.0), it may not be as robust as the ACID
properties of traditional RDBMSs in complex scenarios.
• Index Management:
➢ MongoDB requires careful index management to optimize query performance.
Poorly designed indexes can lead to performance degradation.
MongoDB is a powerful and flexible database solution that aligns well with the needs of modern
web development. Its document-oriented approach, scalability, and performance make it ideal for
applications that require rapid development and the ability to handle complex, evolving data
structures. By leveraging MongoDB, developers can create responsive, data-driven applications
that meet the demands of users today. Understanding how to effectively use MongoDB is
essential for anyone involved in full-stack development or building dynamic web applications.
32
CONCLUSION:
In conclusion, web full stack development encompasses a comprehensive skill set that enables
developers to create dynamic, responsive applications from front-end interfaces to back-end
databases. Mastering technologies such as HTML, CSS, JavaScript, frameworks like React or
Angular, and back-end solutions like Node.js or Django, along with database management
systems like MongoDB or SQL, empowers developers to build robust, user-friendly applications.
The ability to understand and integrate both client-side and server-side technologies not only
enhances problem-solving capabilities but also fosters innovation in creating seamless user
experiences. As the web continues to evolve, staying updated with the latest trends and best
practices in full stack development is essential for building efficient, scalable, and maintainable
applications that meet user needs and business goals. Embracing this holistic approach positions
developers to thrive in an ever-changing digital landscape.
…𝓽𝓱𝓪𝓷𝓴 𝔂𝓸𝓾...
33