Manoj Internship
Manoj Internship
INTERNSHIP REPORT ON
of
BACHELOR OF TECHNOLOGY
in
By
CHITTOOR-517127, A.P.
(2024-2025)
i
SREENIVASA INSTITUTE OF TECHNOLOGY AND MANAGEMENT STUDIES
CHITTOOR-517127, A.P.
(Autonomous – NBA Accredited)
(Approved by AICTE & Affiliated to JNTUA, Ananthapuramu)
CERTIFICATE
ii
STUDENT’S DECLARATION
iii
INTERNSHIP CERTIFICATE
iv
ACKNOWLEDGEMENT
A Project of this magnitude would have not been possible without the guidance
and co-ordination of many people. I am fortune in having top quality people to help,
support and guide me in every step towards my goal. I’m very much grateful to the
Chairman Sri K. Ranganadham, Garu for his encouragement and stalwart support. I
also extremely indebted to the Secretary Sri D.K. Badri Narayana, Garu for his constant
support.
I express my sincere thanks to our Academic Advisor Dr. K. L. Narayana.,
MTech., Ph.D., further, I would like to express my profound gratitude to our principal
Dr. N. Venkatachalapathi, MTech., Ph.D., for providing all possible facilities
throughout the completion of my project work.
I express my sincere thanks to our Dean (Academics), Dr. M. Saravanan, M.E.,
Ph.D., further I express my sincere thanks to Head of the Department Dr.
R. Karunia Krishna Priya MTech., Ph.D. Associate Professor for his co-operation
and valuable suggestions towards the completion of project work.
I express my sincere thanks to my guide Mrs. P. Leelavathi, M.Tech., Assistant
Professor for offering me the opportunity to do this work under his guidance.
I express my sincere salutation to all other teaching and non-teaching staff of our
department for their direct and indirect support given during my project work. Last but
not the least. I dedicate this work to my parents and the Almighty who have been with
me throughout and helped me to overcome the hard times.
v
ABSTRACT
vi
INDEX
1 INTRODUCTION
2 FPROJECT DESCRIPTION
vii
CHAPTER – 1
INTRODUCTION
1
1.2 INTRODUCTION TO FULL STACK WEB DEVELOPMENT
DEFINITION:
Full Stack Web Development refers to the end-to-end development of web applications,
covering both the front-end (client-side) and back-end (server-side) technologies. It
involves building responsive user interfaces, implementing server logic, and managing
databases to deliver complete and functional web applications. A full stack developer
possesses the skills to handle all layers of development, ensuring smooth integration and
high performance across the web stack.
4. Version Control & Deployment – Using Git for version control and deploying
applications using services like GitHub, Vercel, or Heroku.
Frontend Development
Key Features: UI layout, responsiveness, DOM manipulation, animations, state
management.
Technologies Used: HTML5, CSS3, JavaScript, React.js, Vue.js, Bootstrap,
GSAP, Three.js.
Backend Development
Key Features: API creation, server logic, authentication, database interaction.
Technologies Used: Node.js, Express.js, Python (Django/Flask), RESTful APIs,
JWT.
2
Database Management
Key Features: Data storage, retrieval, schema design, relationships, and
performance optimization.
Technologies Used: MongoDB, PostgreSQL, Mongoose ORM.
Tools & Deployment
Key Features: Version control, CI/CD, testing, and live deployment.
3
CHAPTER - 2
PROJECT DESCRIPTION
Features
1. Smooth scroll navigation between sections (Home, About, Skills, Projects,
Contact).
Setup
Use internal <style> and <script> blocks to keep it all in one file.
UI Enhancements
4
Smooth scroll behavior and animated headers.
Deployment
5
SOURCE CODE
<!DOCTYPE html>
<html lang="en">
<head>
<title>My Portfolio</title>
<link
href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;600&display=swa
p" rel="stylesheet">
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.2/gsap.min.js"></script>
<style>
scroll-behavior: smooth;
header {
background:
#222; color: #fff;
padding: 1rem
2rem; position:
fixed; width:
100%;
top: 0;
z-index: 1000;
display: flex;
justify-content: space-
between; align-items: center;
6
}
header nav a {
margin-left: 1rem;
text-decoration:
none; color: #fff;
font-weight: 500;
section {
padding: 100px
20px; min-height:
100vh; display:
flex;
flex-direction:
column; justify-
content: center;
}
.hero {
.hero h1 {
font-size: 3rem;
margin-bottom:
1rem;
}
.section-title {
font-size:
2rem;
margin-bottom:
1rem; text-align:
center;
}
7
background: #f5f5f5;
.projects .card {
background: #fff;
border-radius:
10px;
box-shadow: 0 5px 15px
rgba(0,0,0,0.1); margin: 1rem auto;
padding: 1rem;
max-width:
500px;
}
.contact form {
max-width:
400px; margin: 0
auto; display:
flex;
flex-direction: column;
.contact button {
padding: 0.75rem;
background:
#6e8efb; color:
white;
border: none;
border-radius:
5px;
8
cursor: pointer;
font-weight:
bold;
}
footer {
text-align: center;
padding: 1rem;
background:
#222; color:
white;
}
</style>
</head>
<body>
<header>
<nav>
<a href="#hero">Home</a>
<a href="#about">About</a>
<a href="#projects">Projects</a>
<a href="#contact">Contact</a>
</nav>
</header>
9
<h1>Hi, I'm a Web Developer</h1>
<h2 class="section-title">Projects</h2>
<div class="card">
<p>A simple, interactive task manager with a clean UI and responsive layout.</p>
</div>
gsap.utils.toArray("section").forEach(section
=> { gsap.from(section, {
scrollTrigger: {
trigger: section,
start: "top
80%",
},
y: 50,
opacity: 0,
duration: 0.8,
ease: "power2.out"
});
});
</script>
</body>
</html>
10
SAMPLE OUJTPUT
11
2.1.2 Task 2: Online Learning Platform
Description
This task involves creating a simple yet elegant online learning interface where
users can watch video lessons and track their progress. The focus is on a responsive video
layout, user feedback through progress indicators, and an engaging learning experience.
Features
2. Click-to-play functionality
3. Progress tracking with completed lesson badges
Setup
UI Enhancements
Deployment
Hosted on GitHub Pages or Netlify with accessible design and clean code
12
SOURCE CODE
<!DOCTYPE html>
<html lang="en">
<head>
<link
href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;600&display=swap"
rel="stylesheet">
<style>
:root {
--bg-light: #f0f2f5;
--bg-dark: #1a1a2e;
--text-light: #1a1a1a;
--text-dark: #f5f5f5;
--accent: #6e8efb;
body {
background: var(--bg-light);
color: var(--text-light);
transition: all 0.3s ease-in-out;
}
13
body.dark {
background: var(--bg-dark);
color: var(--text-dark);
header {
.toggle-mode {
padding: 0.5rem
1rem; border: none;
background: #fff;
color: #333;
font-weight: 600;
border-radius:
6px; cursor:
pointer;
}
.container {
display: flex;
flex-wrap:
wrap; padding:
2rem;
14
gap: 2rem;
.video-player {
flex: 2;
min-width: 300px;
background: var(--card-
light); border-radius: 20px;
box-shadow: 0 8px 20px
rgba(0,0,0,0.15); padding: 1rem;
transition: 0.3s ease;
body.dark .video-player {
background: var(--card-
dark); backdrop-filter:
blur(10px);
}
iframe {
width:
100%;
height: 400px;
border: none;
border-radius:
12px;
}
.lesson-list {
flex: 1;
display: flex;
flex-direction: column;
15
gap: 1rem;
.lesson {
background: var(--card-light);
padding: 1rem;
border-radius: 12px;
cursor: pointer;
box-shadow: 0 4px 10px
rgba(0,0,0,0.1); transition: 0.2s ease;
display: flex;
justify-content: space-
between; align-items: center;
}
.lesson:hover {
transform: translateY(-3px);
.lesson.completed {
background:
#6e8efb; color:
white;
}
body.dark .lesson {
background: var(--card-
dark); backdrop-filter:
blur(10px);
}
16
body.dark .lesson.completed {
background: #a777e3;
}
</style>
</head>
<body>
function playVideo(index) {
document.getElementById('videoFrame').src =
lessons[index];
// Mark as completed
});
function toggleDarkMode() {
document.body.classList.toggle("dark");
}
</script>
</body>
</html>
17
SAMPLE OUTPUT
18
2.1.3 Task 3: Real-Time Collaborative Document Editor
This task focuses on building a web-based document editor that simulates
collaborative editing in real-time. Users can write, save, delete, and revisit documents
within a modern, intuitive interface. The goal is to mimic real-time collaboration with a
professional UI/UX standard.
Features
Step-by-Step Process
2. Setup
HTML structure includes: title input, document editor, toolbar
3. UI Enhancements
Added dark mode toggle
19
4. Testing
Validate save/load/delete across reloads
Test on multiple screen sizes
Check typing and formatting behavior
20
SOURCE CODE
<!DOCTYPE html>
<html lang="en">
<head>
<link
href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;600&display=swa
p" rel="stylesheet">
<style>
:root {
--bg-light: #f0f2f5;
--bg-dark: #1a1a2e;
--text-light: #1a1a1a;
--text-dark: #f5f5f5;
--accent: #6e8efb;
body {
background: var(--bg-light);
color: var(--text-light);
transition: all 0.3s ease-in-
21
out;
}
#docTitle {
width:
100%;
font-size: 1.5rem;
margin-bottom:
1rem; padding:
0.5rem; border:
none;
border-radius: 8px;
background:
rgba(255,255,255,0.9); font-
weight: bold;
}
.editor {
width:
100%;
height: 300px;
border: none;
outline: none;
font-size:
1rem;
padding:
1rem;
border-radius: 12px;
resize: none;
background:
rgba(255,255,255,0.9); color:
inherit;
}
22
body.dark {
background: var(--bg-dark);
color: var(--text-dark);
header {
.toggle-mode {
padding: 0.5rem
1rem; border: none;
background: #fff;
color: #333;
font-weight: 600;
border-radius:
6px; cursor:
pointer;
}
.container {
padding:
2rem;
max-width: 1000px;
margin: auto;
23
}
.editor-tools
{ display:
flex; gap:
1rem;
flex-wrap: wrap;
margin-bottom:
1rem;
}
.editor-tools button {
padding: 0.5rem
1rem; border: none;
border-radius:
8px; font-weight:
600; cursor:
pointer;
background: var(--accent);
color: white;
}
.editor-box {
background: var(--card-
light); border-radius: 16px;
padding: 1rem;
box-shadow: 0 8px 20px rgba(0,0,0,0.15);
body.dark .editor-box {
background: var(--card-
dark); backdrop-filter:
blur(10px);
24
}
#docTitle {
width:
100%;
font-size: 1.5rem;
margin-bottom:
1rem; padding:
0.5rem; border:
none;
border-radius: 8px;
background:
rgba(255,255,255,0.9); font-
weight: bold;
}
.editor {
width:
100%;
height: 300px;
border: none;
outline: none;
font-size:
1rem;
padding:
1rem;
border-radius: 12px;
resize: none;
background:
rgba(255,255,255,0.9); color:
inherit;
}
body.dark #docTitle,
body.dark .editor {
background: rgba(255,255,255,0.1);
25
color: white;
.footer {
margin-top:
1rem; font-size:
0.85rem; display:
flex;
justify-content: space-between;
select {
padding: 0.4rem;
border-radius:
6px; font-weight:
500;
}
</style>
</head>
<body>
<header>
</header>
<div class="container">
<div class="editor-tools">
-
.
' Save</button>
<button onclick="saveDoc()">⬛
26
_ Delete</button>
<button onclick="deleteDoc()">넢̄
괚
‘ Recent Docs</option>
<option value="">)
</select>
</div>
<div class="editor-box">
<div class="footer">
</div>
</div>
</div>
<script>
// Update count
editor.addEventListener('input', ()
=> { const text = editor.value;
charCount.textContent = `${text.length} characters`;
27
});
function saveDoc() {
localStorage.setItem(`doc-${title.value}`, editor.value);
updateRecent();
alert("Document saved!");
// Load doc
function
loadDoc() {
const val =
recent.value; if (val) {
title.value = val;
editor.value = localStorage.getItem(`doc-
${val}`); editor.dispatchEvent(new
Event('input'));
}
updateRecent();
</script>
</body>
</html>
28
SAMPLE OUTPUT
29
2.1.4 Task 4: Interactive Map Location Saver
This task involves building a modern Map App where users can search and save
specific locations. Users can mark, save, revisit, delete, and edit locations directly on the
map. The interface is fully responsive and visually enhanced, combining powerful
mapping capabilities (via LeafletJS) and persistent local storage, all packed into one sleek
HTML file.
Features
Step-by-Step Process
2. Setup
Embed LeafletJS for open-source interactive maps
30
3. Enhancements
Responsive layout for mobile/tablet
4. Testing
Check map interaction, saving, editing, and deleting
31
SOURCE CODE
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet"
href="https://unpkg.com/[email protected]/dist/leaflet.css"/>
<link
href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;700
&display=swap" rel="stylesheet">
<style>
flex-direction:
column; height:
100vh; overflow:
hidden;
}
.container {
display: flex;
flex: 1;
32
overflow: hidden;
z-index: 1;
.sidebar {
flex: 1;
background: rgba(15, 20, 40,
0.9); backdrop-filter:
blur(20px); padding: 1.2rem;
overflow-y: auto;
h2 {
font-weight: 700;
margin-bottom:
1rem; font-size:
1.6rem; color:
#61dafb;
text-shadow: 0 0 5px #61dafb80;
input, button {
width: 100%;
padding: 0.8rem;
margin-bottom:
1rem; border-radius:
12px; border: none;
font-size: 1rem;
font-family: 'Poppins';
input {
33
background: rgba(255,255,255,0.08);
color: #fff;
border: 1px solid rgba(255,255,255,0.1);
button {
button:hover {
ul {
list-style: none;
margin-top:
1rem; overflow-
y: auto; flex: 1;
}
li {
background:
rgba(255,255,255,0.05); margin-
bottom: 0.5rem;
padding: 0.6rem;
border-radius:
10px; display: flex;
justify-content: space-
between; align-items: center;
transition: background 0.3s ease;
34
}
li:hover {
background: rgba(255,255,255,0.08);
.loc-text {
flex: 1;
margin-right: 10px;
color: #fff;
}
.loc-text[contenteditable] {
outline: none;
}
.btn-small {
background: rgba(255,255,255,0.12);
color: #fff;
border: none;
padding: 0.4rem
0.6rem; font-size:
0.8rem;
border-radius:
6px; margin-left:
5px; cursor:
pointer;
}
.btn-small:hover {
background:
#6c63ff;
}
.animate-marker {
@keyframes bounce {
35
0% { transform: translateY(0); }
100% { transform: translateY(-
8px); }
}
</style>
</head>
<body>
<div class="container">
<div id="map"></div>
<div class="sidebar">
’艗
<h2>艔`艓
' Map Explorer PRO+</h2>
<ul id="savedList"></ul>
</div>
</div>
<script src="https://unpkg.com/[email protected]/dist/leaflet.js"></script>
<script>
L.tileLayer('https://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png', {
attribution: '© OpenStreetMap contributors'
}).addTo(map);
36
function addAnimatedMarker(latlng, name =
'') { if (marker) map.removeLayer(marker);
marker = L.marker(latlng, {
function loadSaved() {
let li = document.createElement('li');
let span =
document.createElement('span');
span.className = 'loc-text';
span.contentEditable = true;
span.textContent = place.name;
span.onblur = () => {
saved[index].name = span.textContent;
localStorage.setItem('places', JSON.stringify(saved));
};
let goBtn =
document.createElement('button');
goBtn.className = 'btn-small';
goBtn.textContent = 'Go';
goBtn.onclick = () => {
map.setView([place.lat, place.lng],
13);
addAnimatedMarker([place.lat, place.lng], place.name);
loadSaved();
</script>
</body>
</html>
37
SAMPLE OUTPUT
38
CHAPTER – 3
PROJECT SUMMERY
1. Portfolio Website
Summary:
This Portfolio Website showcases the developer’s personal projects, skills, and
achievements through a visually dynamic and interactive interface. It leverages modern
web animation libraries like GSAP or Three.js to deliver a stunning user experience.
Key Features:
• Smooth page transitions using GSAP or Three.js.
• Animated sections for projects, skills, and contact info.
• Responsive and mobile-friendly design.
• Clean, professional layout tailored for personal branding.
39
Node.js/Python and MongoDB/PostgreSQL, it provides seamless syncing and rich
editing tools.
Key Features:
• Real-time collaboration and auto-syncing.
• Create, edit, save, delete, and view recent documents.
• In-document editing with enhanced UI/UX.
• Fully responsive interface with backend integration.
40
CONCLUSON
41
REFERENCES
2. W3Schools
Tutorials and examples for web technologies including frontend and backend
basics.
https://www.w3schools.com/
5. PostgreSQL Documentation
Open-source relational database system reference. https://www.postgresql.org/docs/
6. MongoDB Manual
Documentation for MongoDB operations and integration.
https://www.mongodb.com/docs/manual/
9. Three.js
JavaScript 3D library used to create immersive web experiences. https://threejs.org/
42
PHOTOS
43
44