FSWD Record
FSWD Record
____________________Laboratory
Record
Department :_________________________
Semester :_________________________
_______________________ ____________________
______________________ ______________________
Vision of Institute
Velammal Institute of Technology is committed to be a leader in innovative work force development
and a world class learning venue for the ever changing needs of business and Industry.
Mission of Institute
To promote quality education & technical skills to meet the industry requirements.
To incorporate Team work, Leadership skills & Lifelong learning.
To facilitate Career development & Higher education assistance
To encourage innovative ideas for Research & Development and Entrepreneurship for societal
needs.
To inculcate Ethical responsibility & Human values
PEO I:
Graduate will have strong computing knowledge and they are capable to deliver their technical skills
in the field of IT.
PEO II:
Graduate will work collaboratively in multidisciplinary environment or run business venture and
exhibit high level of professional and ethical values.
PSO1: Ability to apply the knowledge of Engineering fundamentals, Data structures and Algorithms,
Operating Systems, Database Systems, Software Engineering, Programming Language, Digital
systems, Computer Networks, cloud computing, Artificial intelligence and Data analytics.
1. Develop a portfolio website for yourself which gives details about yourself for a potential recruiter.
2. Create a web application to manage the TO- DO list of users, where users can login and manage
their to-do items
3. Create a simple micro blogging application (like twitter) that allows people to post their content which
can be viewed by people who follow them.
4.Create a food delivery website where users can order food from a particular restaurant listed in the website
6. Develop a leave management system for an organization where users can apply different types of leaves
such as casual leave and medical leave. They also can view the available number of days.
7. Develop a simple dashboard for project management where the statuses of various tasks are available.
New tasks can be added and the status of existing tasks can be changed among Pending, In Progress or
Completed.
8. Develop an online survey application where a collection of questions is available and users are asked to
answer any random 5 questions
TOTAL: 60 Periods
AIM:
To develop a portfolio website for yourself which gives details about yourself for a potential recruiter.
ALGORITHM:
STEP 1: Start
PROGRAM :
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="styles.css">
<title>Your Portfolio</title></head>
<body>
<header>
<h1>Your Name</h1>
<section id="contact">
<h2>Contact Me</h2>
<p>Email: [email protected]</p>
<p>LinkedIn: <a href="#">linkedin.com/yourprofile</a></p>
</section>
<footer>
<p>© 2023 Your Name</p>
</footer>
</body>
</html>
IT3511 FULL STACK WEB DEVELOPMET LABORATORY 15
CSS:
body {
font-family: Arial, sans-serif;
}
header {
background-color: #333;
colour: white;
text-align: center;
padding: 1em 0;
}
nav ul {
list-style: none;
display: flex;
justify-content: center;
background-color: #444;
padding: 0.5em 0;
}
nav ul li {
margin: 0 1em;
}
nav a {
color: white;
text-decoration: none;
}
section {
padding: 2em;
}
.project {
margin-bottom: 1em;
border: 1px solid #ddd;
padding: 1em;
}
footer {
text-align: center;
padding: 1em 0;
background-color: #333;
color: white;
}
RESULT:
Thus the program was implemented and the output is verified successfully.
AIM:
Create a web application to manage the TO-DO list of users ,where users can login and manage their
to-do items.
ALGORITHM:
STEP 1: Start
STEP 4: Design and create the user interface for registration ,login and the TO-DO
STEP 5: Implement user registration and login functions using Authentication STEP 6:
STEP 8: Stop
PROGRAM:
Index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="style.css">
<title>Document</title>
</head>
<body>
<div id="wrapper">
<h2>ToDo List</h2>
<input type="text" id="txtInput">
<button id="btnAdd">Add</button>
<div id="divTodoList">
</div>
</div>
#wrapper h2{
display:flex;
justify-content: center;
h2{
color:#ffeba7;
letter-spacing: 1px;
}
input{
border-radius: 5px;
border: 2px solid black ;
margin-top:30px;
height:2.5em;
width:250px;
padding-left:10px;
}
input:active{
border:none;
}
#wrapper{
height:500px;
width:400px;
margin:200px auto;
background-color:#1f2029;
border-radius:10px;
padding:30px;
}
button{
margin-top:20px; background-color:#ffeba7;
button:hover{
cursor:pointer;
}
#todoList{
color:white;
font-size:28px;
margin-top:10px;
}
#todoList p{
margin:10px 0px;
}
#todoList p:hover{
cursor: pointer;
}
Coding:
Todo.js:
let button=document.getElementById('btnAdd');
let todoList=document.getElementById('divTodoList');
let input=document.getElementById('txtInput');
let todos=[];
window.console=()=>{
todos=JSON.parse(localStorage.getItem('todos'))||[]
todos.foreach(todo=>addtodo(todo))
button.addEventListener('click',()=>{
todos.push(input.value);
localStorage.setItem('todos',JSON.stringify(todos))
})
function addtodo(todo)
{
let para=document.createElement('p');
para.innerText=todo;
todoList.appendChild(para);
para.addEventListener('click',()=>{
para.style.textDecoration='line-through'
remove(todo)
})
para.addEventListener('dblclick',()=>{
todoList.removeChild(para)
remove(todo)
})
}
function remove(todo){
let index=todos.indexOf(todo)
if(index>-1)
todo.splice(index,1)
localStorage.setIte('todos',JSON.stringify(todos))
}
OUTPUT:
RESULT:
Thus the program was implemented and the output is verified successfully.
AIM:
To create a simple micro blogging application that allows peoples to post their content which can be viewed
by people who follow them.
ALGORITHM:
STEP 1: Start
STEP 2: Fetch followed users to retrieve the list of users that Currently logged-in user
STEP 3: Fetch post for each followed user ,retrieve their most Recent post
STEP 4: User registration and authentication make the user Can sign up with their credentials and login
securely.
STEP 5: Combine post merge the fetched posts from all followed users into single list
STEP 6: Pagination is the thing where large numbers of post, implement pagination to lead and display
posts in chunks alter than all at once
PROGRAM:
index.js
const express = require('express');
const bodyParser = require('body-parser');
const fs = require('fs');
const path = require('path');
// Middleware
app.use(bodyParser.json());
app.use(express.static(path.join(__dirname, 'public')));
.container {
max-width: 600px;
margin: auto;
background: #fff;
padding: 20px;
border-radius: 5px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
h1, h2 {
color: #333;
}
form {
display: flex;
flex-direction: column;
}
input, textarea {
margin-bottom: 10px;
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px;
}
button {
padding: 10px;
background: #5cb85c;
color: white;
border: none;
border-radius: 5px;
cursor: pointer;
}
button:hover {
background: #4cae4c;
}
.post {
margin-bottom: 20px;
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px;
}
script.js
IT3511 FULL STACK WEB DEVELOPMET LABORATORY 24
const postForm = document.getElementById('postForm');
const postsContainer = document.getElementById('posts');
if (response.ok) {
postForm.reset();
fetchPosts(); // Refresh the post list
} else {
alert('Error creating post');
}
});
blog.json:
[
{
"id": 1,
"title": "hi",
"content": "how ru\n",
"date": "2024-09-22T16:06:10.326Z"
IT3511 FULL STACK WEB DEVELOPMET LABORATORY 25
},
{
"id": 2,
"title": "hi ",
"content": "hello",
"date": "2024-09-22T16:06:22.830Z"
},
{
"id": 3,
"title": "hi",
"content": "this is new blog",
"date": "2024-09-22T16:19:35.367Z"
}
]
OUTPUT:
Thus the program was implemented and the output is verified successfully.
AIM:
To create a food delivery website where users can order food from a particular restaurant listed in the
website.
ALGORITHM:
STEP 1: Open a HTML compiler
STEP 2: Create a food delivery website
STEP 3: Create a image for the front page
STEP 4: Design the front page using CSS
STEP 5: For functioning use java script
STEP 6: Link CSS, java script in HTML
STEP 7: Compile the code
STEP 8: After finished the code
STEP 9: Excute in the browser
STEP 10: Stop
PROGRAM:
<!DOCTYPE html>
<html>
<head>
<title>Food Delivery</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<header>
<h1>Food Delivery</h1>
<nav><ul>
<li><a href="#">Home</a></li>
<li><a href="#">Menu</a></li>
<li><a href="#">Contact</a></li>
</ul>
</nav>
</header>
OUTPUT:
RESULT:
Thus the program was implemented and the output is verified successfully.
AIM:
To develop a classifieds web application to buy and sell used products
ALGORITHM:
Step 1: Create a React app using create-react-app.
Step 2: Use axios for making API requests to the backend.
Step 3: Implement components for displaying a list of products and adding a new product.Manage
state using useState and useEffect.
Step 4: Set up routes using react-router-dom for different pages.
App.js
return (
<div className="App">
<h1>Shopping Cart</h1>
IT3511 FULL STACK WEB DEVELOPMET LABORATORY 32
<div className="item-list">
<h2>Items</h2>
{items.map(item => (
<div key={item.id} className="item">
<span>{item.name} - ${item.price}</span>
<button onClick={() => addToCart(item)}>Add to Cart</button>
</div>
))}
</div>
<div className="cart">
<h2>Cart</h2>
{cart.length === 0 ? (
<p>Your cart is empty</p>
):(
cart.map(item => (
<div key={item.id} className="cart-item">
<span>{item.name} - ${item.price}</span>
<button onClick={() => removeFromCart(item.id)}>Remove</button>
</div>
))
)}
<h3>Total: ${getTotalPrice()}</h3>
</div>
</div>
);
}
app.css
.App {
font-family: Arial, sans-serif;
padding: 20px;
max-width: 600px;
margin: 0 auto;
}
h1 {
text-align: center;
}
.item-list, .cart {
margin-top: 20px;
}
.item, .cart-item {
display: flex;
justify-content: space-between;
align-items: center;
margin: 10px 0;
}
IT3511 FULL STACK WEB DEVELOPMET LABORATORY 33
button {
padding: 5px 10px;
cursor: pointer;
background-color: #4CAF50;
color: white;
border: none;
border-radius: 5px;
}
button:hover {
background-color: #45a049;
}
OUTPUT:
RESULT:
Thus the program is implemented and the output is verified successfully.
AIM:
To develop a leave management system for an organization where users can apply different types of leaves
such as casual leave and medical leave. They also can view the available number of days.
ALGORITHM:
1. Create a database to store user profiles and leave balances.
2. Implement a user interface for leave application and viewing available days.
3. Allow users to apply for leaves, deduct the requested days from their balance.
a. Set up a Node.js project with express.
4. Connect to MongoDB using Mongoose.
5. Create a User schema to represent employees.
6. Create a Leave schema to represent leave applications.
7. Implement API endpoints for:
a. Applying for different types of leaves (e.g., casual leave, medical leave).
b. Viewing available leave balance.
PROGRAM:
Index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Leave Request Form</title>
</head>
<body>
<h2>Leave Request Form</h2>
<form id="leaveForm">
<label for="employeeId">Employee ID:</label><br>
<input type="text" id="employeeId" name="employeeId" required><br><br>
IT3511 FULL STACK WEB DEVELOPMET LABORATORY 35
<label for="employeeName">Employee Name:</label><br>
<input type="text" id="employeeName" name="employeeName" required><br><br>
AIM :
To develop a simple dashboard for project management where the statuses of various tasks are
available. New tasks can be added and the status of existing tasks can be changed among Pending, In Progress
or Completed.
ALGORITHM:
Step1: Initialize task list with default statuses (Pending, In Progress, Completed).
Step2: Design a user interface to display tasks and their statuses.
Step3: Allow adding new tasks with default "Pending" status.
Step4: Implement status change buttons for each task (In Progress, Completed).
Step5: Update task status in response to user interactions, reflecting changes on the dashboard.
PROGRAM:
APP.JS
import React from 'react';
import TaskDashboard from './components/TaskDashboard';
function App() {
return (
<div className="App">
<h1>Project Management Dashboard</h1>
<TaskDashboard />
</div>
);
}
App.css
.App {
text-align: center;
font-family: Arial, sans-serif;
}
form {
margin-bottom: 20px;
}
table {
width: 50%;
margin: 0 auto;
border-collapse: collapse;
}
IT3511 FULL STACK WEB DEVELOPMET LABORATORY 41
th, td {
padding: 8px;
text-align: center;
}
select {
padding: 4px;
}
TaskDashboard.js
return (
<div>
<TaskForm addTask={addTask} />
<TaskList tasks={tasks} updateTaskStatus={updateTaskStatus} />
</div>
);
};
Tasklist.js
import React from 'react';
OUTPUT:
AIM:
To develop an online survey application where a collection of questions is available and users are asked
to answer any random 5 questions.
ALGORITHM:
Step 4: Create a folder named components in src file and create new files Option.js, Question.js,
QuestionBank.js, and Score.js
Project Structure:
handleNextQuestion = () => {
const { question Bank, current Question } = this. State; if (current Question + 1 < questionBank.length) {
this.setState((Prev State) => ({
current Question: prevState.currentQuestion + 1, selected Option: "",
}));
} else {
this.setState({ quiz End: true,
});
}
};
render() {
const { questionBank, current Question, selected Option, score, quiz End } = this. State;
return (
<div class Name="App d-flex flex-column align-items-center justify-content-center">
<h1 class Name="app-title">WEBSITE FEEDBACK ONLINE SURVEY</h1>
{!quiz End ? (
Option.js
import React, { Component } from 'react';
class Options extends Component {
render() {
const { options, selected Option, onOptionChange } = this.props;
return (
<div class Name='options'>
{options. Map((option, index) => (
<div key={index} class Name="form-check">
<input
type="radio" name="option" value={option}
checked={selected Option === option} unchanged={onOptionChange} className="form-check-input"
/>
<label className="form-check-label">{option}</label>
</div>
))}
</div>
);
}
}
Question.js
import React, {Component} from "react";
import Options from "./Option";
return(
<div className="">
<h3>Question {question.id}</h3>
<h5 className="mt-2">{question.question}</h5>
IT3511 FULL STACK WEB DEVELOPMET LABORATORY 48
<form onSubmit={onSubmit} className="mt-2 mb-2">
<Options options={question.options} selectedOption={selectedOption}
onOptionChange={onOptionChange}
/>
<button type="submit" className="btn btn-primary mt-2"> SUBMIT
</button>
</form>
</div>
)
}
}
QuestionBank.js
const qBank = [
{
id: 1,
question: "How easy is it to find what you’re looking for on our website?",
options: ["Very easy", "Easy", "Neutral", "Difficult"],
},
{
id: 2,
question: "How useful is the content on our website?",
options: ["Not Useful", "Very Useful", "Not Relevant", "Relevant"],
},
{
id: 3,
question: "How would you rate the loading speed of our website?",
options: ["Five Stars", "Four Stars", "Three Stars", "Two stars "],
},
{
id: 4,
question: "How satisfied are you with the look and feel of our website?",
options: ["Very Satisfied", "Satisfied", "Neutral", "Dissatisfied"],
},
{
id: 5,
question: "How satisfied are you with the overall experience?",
options: ["Very Satisfied", "Satisfied", "Neutral", "Dissatisfied"],
},
]
Score.js
import React, { Component } from 'react'; import '../App.css'
IT3511 FULL STACK WEB DEVELOPMET LABORATORY 49
class Score extends Component { render() {
const { score, onNextQuestion } = this.props;
return (
<div>
OUTPUT:
Thus the program was implemented and the output is verified successfully.