Aman Intership Report
Aman Intership Report
(Summer Internship)
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
BONAM VENKATA CHALAMAYYA ENGINEERING COLLEGE
(AUTONOMOUS)
(Approved by A.I.C.T.E, New Delhi & Permanently Affiliated to J. N.T.U.K, Kakinada)
(Accredited by N.B.A & NAAC with ‘A’ Grade)
ODALAREVU – 533210
2024-25
COMPLETED AT
Submitted By:
AMAN VERMA
22221A05D0
BONAM VENKATA CHALAMAYYA ENGINEERING COLLEGE
(AUTONOMOUS)
(Approved by A.I.C.T.E, New Delhi & Permanently Affiliated to J. N.T.U.K, Kakinada)
(Accredited by N.B.A & NAAC with ‘A’ Grade)
ODALAREVU – 533210
2024-25
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
CERTIFICATE
This is to certify that AMAN VERMA, a student of the Department of Computer Science and
Engineering at BVC Engineering College, has successfully completed the 8 weeks Summer
Internship at International Institute of Digital Technologies, from 2nd May 2024 to 25th June
2024.
During the internship, students demonstrated their knowledge, skills, and professionalism while
contributing to projects and activities within Full Stack Development. Their performance has
been assessed and found to be satisfactory, meeting the expectations set by both the Department
and the Company.
External Examine
CERTIFICATE ISSUED BY COMPANY
TABLE OF CONTENTS
ACKNOWLEDGEMENT:
- JavaScript
- Framework: Django
CHAPTER 3: DevOps
I would like to express my sincere gratitude to “APSCHE Foundation”, for providing me with
the knowledge and skills necessary to successfully complete this internship on “Full Stack
Development”. Their guidance, support, and encouragement throughout the duration of the
course were invaluable.
I would also like to extend my appreciation to all the staff members and fellow students, who
helped me in various ways to complete this internship. Their contributions and support helped
me to achieve my goals.
Lastly, I would like to acknowledge my family and friends for their unwavering support and
encouragement throughout this journey. Without their support, it would not have been possible
for me to complete this internship.
Aman Verma
INTRODUCTION
Full stack development refers to the practice of working on both the front end (client
side) and the back end (server side) of a web application. Full stack developers have
the skills to create a complete web application from scratch, encompassing
everything from the user interface to the database.
Mastering full stack development requires a broad skill set and continuous
learning due to the fast-paced nature of web technologies. It's a challenging but
rewarding path for those who enjoy a variety of development tasks. Are you
considering diving into full stack development?
Enterprise-level software solutions also benefit from full stack development. These
applications often require custom features and integrations that cater to specific
business needs. Full stack developers can design intuitive dashboards, reporting
tools, and analytics interfaces on the front end, while implementing database
management, API integrations, and security protocols on the back end. This end-to-
end capability allows businesses to streamline their operations and improve
productivity through tailored software solutions.
Frontend development is the creation of the parts of a website or web application that users
directly interact with. This involves crafting the layout, design, and interactivity using
technologies like HTML, CSS, and JavaScript. Essentially, it's all about making sure that when
users visit a site, they have a smooth and visually appealing experience.
Applications of HTML
Webpage Structure: The primary use of HTML is to structure web pages by defining
elements like headings, paragraphs, links, and multimedia.
Forms and Input: HTML is used to create forms that allow users to input data, such as
contact forms, search boxes, and user registration forms.
Navigation: HTML is used to create navigation links, menus, and buttons, which help
users move around a website.
Web Applications: HTML is used in conjunction with CSS and JavaScript to create
interactive web applications, providing the basic structure while CSS and JavaScript
handle styling and functionality.
Email Templates: HTML is used to create visually appealing and structured email
templates for newsletters, promotions, and other communications.
Document Sharing: HTML can be used to create documents that are easy to share and
access across different platforms and devices.
SEO: HTML is used to structure content in a way that search engines can understand,
improving search engine optimization and making web pages easier to find.
HTML Tags:
HTML tags are the building blocks of HTML and define the structure and content of web
pages. Here are some commonly used HTML tags:
<html>: The root element that wraps the entire HTML document.
<head>: Contains meta-information about the document, like title, scripts, and
styles.
<title>: Sets the title of the document, shown in the browser’s title bar.
<body>: Encloses the content of the HTML document that is visible to users.
<h1> to <h6>: Heading tags, with <h1> being the highest level and <h6> the
lowest.
<p>: Defines a paragraph.
<a>: Creates a hyperlink.
<img>: Embeds an image.
<ul>, <ol>, <li>: Create unordered and ordered lists, with <li> defining each list
item.
<div>: Defines a division or section in a document.
<span>: Used for inline sections of content.
<table>, <tr>, <td>: Create tables, table rows, and table cells.
<form>: Encloses form elements.
<input>: Defines an input control.
<br>: Inserts a line break.
Example of HTML:
<!DOCTYPE html>
<html>
<body>
<h2>Contact Us</h2>
<form>
</form>
</body>
</html>
What is CSS?
CSS describes how HTML elements are to be displayed on screen, paper, or in other
media
CSS saves a lot of work. It can control the layout of multiple web pages all at once
CSS Application:
Styling:
Layout: CSS is used to design the layout of web pages, including elements like
navigation bars, sidebars, and footers. This helps in creating a visually structured
page.
Design and Themes: CSS allows for the creation of aesthetically pleasing themes
and styles. This includes colors, fonts, spacing, and overall design elements.
Responsive Design:
Media Queries: CSS enables responsive design, which ensures that web pages look
good on all devices, from desktops to smartphones. Media queries allow developers
to apply different styles based on screen size and device type.
Animation:
Transitions and Animations: CSS can create animations and transitions, making
web pages more interactive and engaging. This includes effects like fading, sliding,
and transforming elements.
Accessibility:
Accessibility Features: CSS helps in making web pages accessible to all users,
including those with disabilities. It allows for customization of visual elements to
enhance readability and navigation.
Customization:
Custom Properties (CSS Variables): CSS enables the use of custom properties,
which allow developers to store values and reuse them throughout the stylesheet. This
makes the code more maintainable and flexible.
Targeting Specific Elements: CSS selectors can target specific HTML elements to
apply styles. This includes class selectors, ID selectors, and pseudo-class selectors.
Pseudo elements and Pseudo classes: CSS can apply styles to specific parts of
elements, such as the first line of a paragraph, or change the appearance of elements
when they are in certain states, like hovered over or focused.
Examples of CSS:
<!DOCTYPE html>
<html>
<body>
</body>
</html>
Introduction to JavaScript:
Interpreted Language: JavaScript code is executed line by line by the browser's JavaScript
engine, without needing prior compilation.
Dynamic Typing: Variables in JavaScript do not require a type definition. The type is
determined at runtime, making the language more flexible.
Prototype-based: JavaScript uses prototypes instead of classes for inheritance. Every object has
a prototype object from which it can inherit methods and properties.
First-class Function: Functions in JavaScript are treated as first-class citizens, meaning they can
be assigned to variables, passed as arguments, and returned from other functions.
Objects and Arrays: Objects store key-value pairs, where each key (also called a "property") is a
string (or Symbol), and the value can be any data type. Arrays are ordered collections of values,
and they can store mixed data types.
Django is a high-level Python web framework that promotes rapid development and clean,
pragmatic design. It is widely used in web development for its robust features, scalability,
and security. Here are some of the key uses and advantages of the Django framework in
web development:
1. Rapid Development
Built-in Features: Django comes with many built-in features, such as an admin panel,
user authentication, and form handling, which significantly speed up the development
process.
Convention Over Configuration: Django follows the principle of "convention over
configuration," which reduces the amount of boilerplate code developers need to write.
Database Abstraction: Django's ORM allows developers to interact with the database
using Python objects instead of writing raw SQL queries. This abstraction simplifies
database operations and enhances code readability.
Database Migrations: Django provides a migration system that makes it easy to manage
database schema changes over time.
3. Scalability
Caching: Django includes built-in support for caching, which can improve performance
and scalability by reducing the load on the database.
4. Security
User Authentication: Django provides a robust authentication system that includes user
registration, login, and permission management out of the box.
5. Admin Interface
Django REST Framework (DRF): Django can be used to build RESTful APIs efficiently
with the help of the Django REST Framework, which provides tools for serialization,
authentication, and view sets, making it easier to create and manage APIs.
7. Templating System
Template Inheritance: Developers can create a base template and extend it in other
templates, promoting code reuse and maintainability.
Active Community: Django has a large and active community that contributes to its
development, providing a wealth of third-party packages and plugins that extend its
functionality.
Built-in Testing Tools: Django includes a robust testing framework that allows
developers to write unit tests and functional tests for their applications, ensuring that code
changes do not introduce new bugs.
1. Server:
o A server processes incoming requests from clients (like web browsers) and sends
back the appropriate response. Common server-side languages include JavaScript
(Node.js), Python, Ruby, Java, and PHP.
2. Database:
o Databases store and manage data that the website or application needs. Backend
developers design database schemas and write queries to fetch, insert, update, and
delete data. Popular databases include MySQL, PostgreSQL, MongoDB, and SQL
Server.
o APIs allow different software systems to communicate with each other. Backend
developers create RESTful or GraphQL APIs to enable the front end to interact
with the server and database.
o This ensures that users can securely log in and access data or services they’re
allowed to. Backend development often involves setting up user accounts,
authentication systems, and permission controls.
5. Server Logic:
6. Security:
o Ensuring that the backend is secure from threats like SQL injection, cross-site
scripting (XSS), and data breaches is crucial. This includes implementing
encryption, secure coding practices, and regular security audits.
Introduction to Python:
Python is a powerful and versatile programming language that plays a significant
role in web development. Its ease of use, extensive libraries, and frameworks make it
a popular choice among developers for building web applications. Below are some
key aspects of Python in the context of web development:
1. Web Frameworks
Python has several robust web frameworks that simplify the development process by
providing tools and libraries to handle common tasks. Some of the most popular
frameworks include:
Django: A high-level web framework that encourages rapid development and clean,
pragmatic design. It comes with built-in features like an admin panel, ORM (Object-
Relational Mapping), authentication, and security measures, making it suitable for
building complex web applications quickly.
Flask: A lightweight and flexible micro-framework that is easy to use for small to
medium-sized applications. Flask provides the essentials for web development and allows
developers to add extensions as needed, giving them more control over the components
they use.
FastAPI: A modern, fast (high-performance) web framework for building APIs with
Python 3.6+ based on standard Python type hints. It is designed for speed and is ideal for
building RESTful APIs.
Pyramid: A flexible framework that can be used for both small and large applications.
Pyramid allows developers to start small and scale up as needed, providing a wide range
of features and flexibility.
2. Template Engines
Python web frameworks often include template engines that allow developers to separate
the presentation layer from the business logic. Popular template engines include:
Jinja2: The default templating engine for Flask, Jinja2 is powerful and easy to use,
supporting template inheritance and dynamic content generation.
Django Templates: Django comes with its own templating engine that allows developers
to create dynamic HTML pages using template tags and filters.
3. Database Integration
SQLAlchemy: A powerful and flexible ORM that can be used with Flask and other
frameworks, providing a full suite of database tools.
4. RESTful APIs
Python is widely used to create RESTful APIs, which allow different applications to
communicate over the web. Frameworks like Flask and FastAPI are particularly well-
suited for building APIs, providing tools to handle routing, request parsing, and response
formatting easily.
5. Asynchronous Programming
6. Security Features
Python frameworks often come with built-in security features to help developers protect
their applications from common vulnerabilities, such as SQL injection, cross-site
scripting (XSS), and cross-site request forgery (CSRF). Django, for example, includes
features like protection against XSS and CSRF out of the box.
The Python web development community is large and active, providing a wealth of
libraries, plugins, and resources. This support makes it easier for developers to find
solutions to problems and share knowledge.
Python web applications can be deployed on various platforms and services, including
traditional servers, cloud services (like AWS, Google Cloud, and Heroku), and
containerization platforms (like Docker). Tools like Gunicorn and uWSGI are commonly
used to serve Python web applications in production.
Introduction about MongoDB:
MongoDB is a popular, open-source NoSQL database designed for handling large volumes of
unstructured data. Unlike traditional relational databases that store data in tables with rows and
columns, MongoDB uses a flexible, document-oriented data model, storing data in JSON-like
BSON (Binary JSON) format. This allows for a more scalable and dynamic data structure.
1. Document-Oriented:
o Data is stored in flexible, JSON-like documents. This allows for the storage of
complex data structures and nested arrays.
2. Schema-Less:
3. Scalability:
o Built for horizontal scalability, MongoDB can distribute data across multiple
servers to balance load and ensure high availability. Sharding is used to partition
data across a cluster of machines.
4. Indexing:
o MongoDB supports various types of indexes, enabling fast query execution and
efficient data retrieval. Indexing helps in searching, sorting, and filtering data.
5. Replication:
6. Aggregation Framework:
o MongoDB includes a powerful aggregation framework for data processing and
analysis. It allows for complex data manipulations, transformations, and
computations directly within the database.
7. Geospatial Support:
8. ACID Transactions:
Content Management Systems: Flexible schema makes it ideal for storing diverse content
types.
Internet of Things (IoT): Efficiently manages and processes data from IoT devices.
Version Control:
Git:
Git is a distributed version control system used to track changes in source code during software
development. It enables multiple developers to work on a project simultaneously without
interfering with each other's work. Git's key features include branching, merging, and the ability
to maintain a complete history of changes.
Version Control: Tracks changes in code over time, allowing for easy reversion to
previous states.
Branching and Merging: Facilitates the creation of branches for new features, which can
be merged back into the main codebase once complete.
Distributed System: Each developer has a complete copy of the project history, ensuring
resilience and flexibility.
Staging Area: Provides a space to review changes before committing them to the project
history.
GitHub:
GitHub is a web-based platform that uses Git for version control and offers additional features
for collaboration and project management. It's widely used for hosting open-source projects and
allows developers to share code, track issues, and collaborate more efficiently.
Pull Requests: Facilitate code reviews and discussions before merging changes.
Collaborations: Tools for team collaboration, including project boards and wikis.
3. Create a Repository:
On GitHub, click the '+' icon in the top right corner and select "New repository." Name
your repository and click "Create repository."
5. Connect to GitHub:
7. Push to GitHub:
a. Push your changes to the GitHub repository: git push -u origin main.
This process will upload your project to GitHub, where you can collaborate with others, track
issues, and manage your project's development.
Conclusion:
The internship experience in Full Stack Developer has been a transformative journey, bridging
academic knowledge with real-world applications. Working on practical projects allowed me to
apply theoretical concepts, sharpen my technical skills, and develop an in-depth understanding of
Full Stack Developer potential to drive innovation. By working directly with full Stack
Developer, I learned the importance of efficient data management which are crucial in building
scalable and robust systems.
References:
Django: Chen, Songtao, et al. "Django web development framework: Powering the
modern web." American Journal of Trade and Policy 7.3 (2020): 99-106.Edunet
Foundation
Git and GitHub: Blischak, John D., Emily R. Davenport, and Greg Wilson. "A
quick introduction to version control with Git and GitHub." PLoS computational
biology 12.1 (2016): e1004668.
THANK YOU!