0% found this document useful (0 votes)
24 views93 pages

FSWD Record

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views93 pages

FSWD Record

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Ex.

No:01
CREATION OF PORTFOLIO WEBSITE
Date:

Aim:

To create personal portfolio website using react.js.

Components:

In ‘src’ folder create the following components:

1.App.js

2.Home.js

3.About.js

4.Contact.js

5.Project.js

6.Navbar.js

7.Navbar.css

8.Footer.js

9.Footer.css

10.Heroimg.js

11.Heroimg2.js

1.App.js
import React from "react";

import "./index.css";
import Home from "./routes/Home";
import About from"./routes/About";
import Contact from "./routes/Contact";
import Project from "./routes/Project";

import {Route,Routes} from "react-router-dom";

function App() {
return (
<>
<Routes>
<Route path="/" element={<Home/>} />
<Route path="/project" element={<Project/>} />
<Route path="/about" element={<About/>} />
<Route path="/contact" element={<Contact/>} />
</Routes>
</>
);
}
export default App;

2.Home.js
import React from 'react';
import Navbar from "../components/Navbar";
import Heroimg from "../components/Heroimg";
import Footer from "../components/Footer";

const Home = () => {


return (
<div>
<Navbar/>
<Heroimg/>
<Footer/>
</div>
)
}

export default Home;

3.About.js
import React from 'react';
import Navbar from "../components/Navbar";
import Footer from "../components/Footer";
import Heroimg2 from '../components/Heroimg2';

const About = () => {


return (
<div>
<Navbar/>
<Heroimg2 heading="ABOUT" text="I'm a Data Analyst." />

<Footer/>
</div>
)
}

export default About;


4.Contact.js
import React from 'react';
import Navbar from "../components/Navbar";
import Footer from "../components/Footer";
import Heroimg2 from '../components/Heroimg2';
const Contact = () => {
return (
<div>
<Navbar/>
<Heroimg2 heading="CONTACT" text="Feel free to Contact me"/>
<Footer/>
</div>
)
}

export default Contact;

5.Project.js
import React from 'react';
import Navbar from "../components/Navbar";
import Footer from "../components/Footer";
import Heroimg2 from "../components/Heroimg2";

const Project = () => {


return (
<div>
<Navbar/>
<Heroimg2 heading="PROJECTS" text="Some of my works.."/>

<Footer/>
</div>
)
}

export default Project;

6.Navbar.js
import "./Navbar.css";
import {Link} from "react-router-dom";
import {FaBars, FaTimes} from "react-icons/fa";
import React , {useState} from 'react';

const Navbar = () => {

const [click,setClick]= useState(false);


const handleClick = () => setClick(!click);
const [color,setColor] = useState(false);
const changeColor =() => {
if (window.scrollY >=100){
setColor(true);
}else{
setColor(false);
}
};

window.addEventListener("scroll",changeColor);

return (
<div className={color? "header header-bg" : "header"} >
<Link to="/">
<h1>PORTFOLIO</h1>
</Link>
<ul className={click ? "nav-menu active" : "nav-menu"}>
<li>
<Link to="/">Home</Link>
</li>
<li>
<Link to="/project">Project</Link>
</li>
<li>
<Link to="/about">About</Link>
</li>
<li>
<Link to="/contact">Contact</Link>
</li>
</ul>
<div className="hamburger" onClick={handleClick}>
{click ? (<FaTimes size={20} style={{ color:"#fff" }}/>):(<FaBars size={20}
style={{ color:"#fff" }}/>) }
</div>
</div>
)
}

export default Navbar;

7.Navbar.css
.header{
display:flex;
justify-content: space-between;
align-items: center;
padding:1rem;
position:fixed;
width:100%;
height:90px;
z-index:10;
}
.header-bg{
background-color: rgba(0,0,0,0.85);
transition:0.5s;
}

.nav-menu{
display:flex;
}
.nav-menu li{
padding:0 1rem;
}

.nav-menu li a{
font-size:1.2rem;
font-weight: 500;
}
.hamburger{
display:none;
}

@media screen and (max-width:1040px){


.nav-menu{
flex-direction: column;
justify-content: center;
align-items: center;
width:100%;
height:100vh;
background: rgba(0,0,0,0.9);
position: absolute;
top:0;
left:-100%;
z-index:-3;
transition:0.3s;
}
.nav-menu.active{
left:0;
}
.nav-menu li{
padding:1rem 0;

}
.nav-menu li a {
font-size: 2rem;
}
.hamburger{
display:initial;
}
}
8.Footer.js
import "./Footerstyles.css";

import React from 'react';


import {FaFacebook, FaHome, FaLinkedin, FaMailBulk, FaPhone, FaTwitter} from "react-
icons/fa";

const Footer = () => {


return (
<div className="footer">
<div className="footer-container">
<div className="left">
<div className="location">
<FaHome size={20} style={{color:"#fff", marginRight: "2rem"}}/>
<div>
<p>575/c Nehru street,</p>
<p>Sirumugai.</p>
</div>
</div>
</div>
<div className="phone">
<h4>
<FaPhone size={20} style={{color:"#fff", marginRight: "2rem"}}/>
6382520460
</h4>
</div>
<div className="email">
<h4>
<FaMailBulk size={20} style={{color:"#fff", marginRight: "2rem"}}/>
[email protected]
</div>
<div className="right">
<h4>About Me</h4>
<p>
This is Dhivya. I am a student in KGiSL Institute of Technology.I am
persuing my UG degree.
</p>
</div>
<div className="social">
<FaFacebook size={30} style={{color:"#fff", marginRight: "2rem"}}/>
<FaTwitter size={30} style={{color:"#fff", marginRight: "2rem"}}/>
<FaLinkedin size={30} style={{color:"#fff", marginRight: "2rem"}}/>
</div>
</div>
</div>
)
}

export default Footer;


9.Footer.css
.footer{
width:100%;
padding: 6rem 0;
background-color: rgba(19,19,19,0.8);
}

.footer-container{
max-width:1140px;
margin:auto;
display: grid;
grid-template-columns: repeat(2, 1fr);
grid-gap: 40px;
}

.left{
height:100%;
max-width:100%;
display:flex;
flex-direction: column;
padding:1rem;
}

.location{
display:flex;
margin-bottom: 0.8rem;
}

.location p{
line-height: 30px;
}

.right{
height:100%;
max-width: 100%;
display:flex;
flex-direction:column;
padding:1rem;
}

.social{
margin-top: 1rem;
}

h4{
font-size:1.2rem;
padding-bottom :0.7rem;
}

p{
font-size: 1.2rem;
}
@media screen and (max-width:640px){
.footer-container{
grid-template-columns:1fr;
}
}

10.Heroimg.js
import "./Heroimgstyles.css";

import React from 'react';


import introimg from "../assets/My-photo.jpeg";
import {Link} from "react-router-dom";

const Heroimg = () => {


return (
<div className="hero">
<div className="mask">
<img className="into-img" src={introimg} alt="introimg"/>
</div>
<div className="content">
<p>HI, I'M DHIVYA</p>
<h1>DATA ANALYST </h1>
<div>
<Link to="/project" className="btn">PROJECTS</Link>
<Link to="/contact" className="btn-light">CONTACT</Link>
</div>
</div>
</div>
)
}

export default Heroimg;

11.Heroimg2.js
import "./Heroimg2styles.css";

import React, { Component } from 'react';

class Heroimg2 extends Component {


render () {
return (
<div className="hero-img">
<div className="heading">
<h1 >{this.props.heading}</h1>
<p className="line">{this.props.text}</p>

</div>
</div>
);
}

};

export default Heroimg2;

OUTPUT:

Home

Project
About

Contact
Result:

Thus, the creation of portfolio website using react.js is successfully completed


and the output is verified.
Ex.No:02
CREATION OF TO-DO LIST
Date:

Aim:

To create a to-do list using react.js.

Components:

Create the following components in ‘src’ folder:

1.App.js

2.EditTodoForm.js

3.Todo.js

4.TodoForm.js

5.TodoWrapper.js

6.App.css

1.App.js
import './App.css';
import TodoWrapper from './components/TodoWrapper';

function App() {
return (
<div className="App">
<TodoWrapper/>
</div>
);
}

export default App;

2.EditTodoForm.js
import React,{useState} from 'react';

const EditTodoForm = ({editTodo, task}) => {


const [value,setValue] = useState(task.task)

const handleSubmit = e =>{


e.preventDefault();

editTodo(value, task.id);

setValue("")
}
return (
<form className='TodoForm' onSubmit={handleSubmit}>
<input type="text" className='todo-input' value={value} placeholder='Update Task'
onChange={(e) => setValue(e.target.value)}/>
<button type='submit' className='todo-btn'>
Update Task
</button>
</form>
)
}

export default EditTodoForm;

3.Todo.js
import React from 'react';

import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';


import { faPenToSquare } from '@fortawesome/free-solid-svg-icons';
import { faTrash } from '@fortawesome/free-solid-svg-icons';

const Todo = ({task, toggleComplete, deleteTodo , editTodo}) => {


return (
<div className='Todo'>
<p onClick={() => toggleComplete(task.id)} className={`${task.completed ? '
completed':"" }`}>{task.task}</p>
<div>
<FontAwesomeIcon icon={faPenToSquare} onClick={() => editTodo(task.id)}/>
<FontAwesomeIcon icon={faTrash} onClick={()=>deleteTodo(task.id)}/>
</div>
</div>
)
}

export default Todo;

4.TodoForm.js
import React,{useState} from 'react';

const TodoForm = ({addTodo}) => {


const [value,setValue] = useState("")

const handleSubmit = e =>{


e.preventDefault();
addTodo(value);

setValue("")
}
return (
<form className='TodoForm' onSubmit={handleSubmit}>
<input type="text" className='todo-input' value={value} placeholder='What is the
task today?' onChange={(e) => setValue(e.target.value)}/>
<button type='submit' className='todo-btn'>
Add task
</button>
</form>
)
}

export default TodoForm;

5.TodoWrapper.js
import React,{useState} from 'react';
import TodoForm from './TodoForm';
import {v4 as uuidv4} from 'uuid';
import Todo from './Todo';
import EditTodoForm from './EditTodoForm';
uuidv4();

const TodoWrapper = () => {


const [todos,setTodos] = useState([ ])
const addTodo = todo => {
setTodos([...todos, {id: uuidv4(), task:todo, completed: false, isEditing:false
}])
console.log(todos);
}

const toggleComplete = id => {


setTodos(todos.map(todo => todo.id === id ? {...todo, completed: !todo.completed}
:todo))
}

const deleteTodo = id => {


setTodos(todos.filter(todo => todo.id !== id))
}

const editTodo = id =>{


setTodos(todos.map(todo => todo.id === id ? {...todo, isEditing: !todo.isEditing} :
todo ))
}

const editTask = (task,id) =>{


setTodos(todos.map(todo => todo.id === id ? {...todo,task, isEditing:
!todo.isEditing} :todo))
}
return (
<div className='TodoWrapper'>
<h1>Get Things Done!</h1>
<TodoForm addTodo={addTodo}/>
{todos.map((todo, index) => (
todo.isEditing ? (
<EditTodoForm editTodo={editTask} task={todo}/>
) :(
<Todo task={todo} key={index} toggleComplete={toggleComplete}
deleteTodo={deleteTodo} editTodo={editTodo}/>
)

))}

</div>
)
}

export default TodoWrapper;

6.App.css
@import url('https://fonts.googleapis.com/css2?family=Poppins&display=swap');

* {
font-family: 'Poppins', sans-serif;
margin: 0;
padding: 0;
box-sizing: border-box;
}

body {
background: #8758ff;
display: flex;
justify-content: center;
align-items: center;
}

.App {
text-align: center;
}

h1 {
color: #fff;
margin-bottom: 0.5rem;
font-size: 1.75rem;
}

.TodoWrapper {
background: #1A1A40;
margin-top: 5rem;
padding: 2rem;
border-radius: 5px;
}

.TodoForm {
width: 100%;
}

.todo-input {
outline: none;
background: none;
border: 1px solid #8758ff;
padding: 0.5rem 1rem;
margin-top: 1rem;
margin-bottom: 2rem;
width: 300px;
color: #fff;
}

.todo-input::placeholder {
color: #ffffff4d;
}

.todo-btn {
background: #8758ff;
color: #fff;
border: none;
padding: 0.55rem;
cursor: pointer;

.Todo {
display: flex;
justify-content: space-between;
align-items: center;
background: #8758ff;
color: #fff;
padding: 0.75rem 1rem;
border-radius: 5px;
margin-bottom: 1rem;
cursor: pointer;
}

.fa-trash {
margin-left: 0.75rem;
}

.completed {
color: #c5aeff;
text-decoration: line-through;
}
OUTPUT:

To-do List

Result:

Thus, the creation of portfolio website using react.js is successfully completed


and the output is verified.
Ex No:03

CREATION OF MICROBLOG
Date:

Aim:

To create Microblog using react.js.

Components:

In ‘src’ folder create the following components:

1. App.js

2. App.css

3. ImageUpload.js

4. LikeButton.js

5. RadioButtonGroup.js

6. PostForm.js

7. Post.js ; Posts.js

1.App.js

import React, { useState } from 'react';

import PostForm from './PostForm';

import LikeButton from './LikeButton';

import RadioButtonGroup from './RadioButtonGroup';

import ImageUpload from './ImageUpload';

import './App.css';

const App = () => {


const [posts, setPosts] = useState([]);

const addPost = (newPost) => {

setPosts([...posts, { ...newPost, id: Date.now() }]);

};

const handleEdit = (id, newContent) => {

const updatedPosts = posts.map(post =>

post.id === id ? { ...post, content: newContent } : post

);

setPosts(updatedPosts);

};

const handleDelete = id => {

const updatedPosts = posts.filter(post => post.id !== id);

setPosts(updatedPosts);

};

return (

<div className="App">

<h1>Microblog</h1>

<ul>

<PostForm onSubmit={addPost} />

{posts.map(post => (

<li key={post.id}>

<div className='box'>

<ImageUpload />

<div>
<div className='title'>

<h5>{post.title} : </h5>

</div>

<div className='content'>

<p>{post.content}</p>

</div>

<button onClick={() => handleEdit(post.id, prompt('Edit post:',


post.content))}>Edit</button>

<br></br>

<br></br>

<button onClick={() => handleDelete(post.id)}>Delete</button>

<br></br>

<br></br>

<LikeButton />

<br></br>

<br></br>

<br></br>

<RadioButtonGroup />

</div>

</div>

</li>

))}

</ul>

</div>

);

}
export default App;

2.App.CSS
input{

padding-left: 40%;

padding-right: 40%;

text-align: center;

height: 30px;

h1{

text-align: center;

color:rgb(21, 100, 136);

button{

background-color:rgb(4, 4, 50);

color:white;

margin-left:85%;

.App{

color:sandybrown;

background-image: url('./zzz.jpeg');

p{

font-size:large;

}
.box {

width: 650px;

height: 900px;

border: 2px;

border-color: rgb(65, 65, 162);

margin:auto;

color: black;

background:linear-gradient(to right,rgb(142, 201, 228),rgb(4, 32, 49));

/* Add more styling as needed */

.title{

color:rgb(3, 25, 31);

font-size: xx-large;

.content{

font-size: smaller;

.radio{

margin-left: 30%;

img{

padding-left: 10%;

width: 500px;

height: 200px;

}
p{

color:cornsilk;

font-size: x-large;

text-align:left;

h5{

font-size: xx-large;

font-family: Georgia, 'Times New Roman', Times, serif;

color:rgb(7, 4, 26);

h4{

color:purple;

3.ImageUpload.js

import React, { useState } from 'react';

function ImageUpload() {

const [selectedImage, setSelectedImage] = useState(null);

const handleImageChange = (event) => {

const file = event.target.files[0];

if (file) {

const reader = new FileReader();

reader.onload = (e) => {

setSelectedImage(e.target.result);
};

reader.readAsDataURL(file);

};

const handleDeleteImage = () => {

setSelectedImage(null);

};

return (

<div>

<h4>Image Upload :</h4>

<input type="file" accept="image/*" onChange={handleImageChange} />

{selectedImage && (

<div>

<img src={selectedImage} alt="Uploaded" />

<button onClick={handleDeleteImage}>Delete</button>

</div>

)}

</div>

);

export default ImageUpload;

4.LikeButton.js

import React, { useState } from 'react';


const LikeButton = () => {

const [count, setCount] = useState(0);

const handleLike = () => {

setCount(count + 1);

};

return (

<div className="like-button">

<button onClick={handleLike}>

<span role="img" aria-label="Like">👍</span>

<span>{count}</span>

</button>

</div>

);

};

export default LikeButton;

5.RadioButtonGroup.js

import React, { useState } from 'react';

function RadioButtonGroup() {

const [selectedOption, setSelectedOption] = useState(null);

const handleOptionChange = (event) => {


setSelectedOption(event.target.value);

};

return (

<div className='radio'>

<h4>Suggest Anyone....</h4>

<label>

<input

type="radio"

value="option1"

checked={selectedOption === "option1"}

onChange={handleOptionChange}

/>

Good

</label>

<label>

<input

type="radio"

value="option2"

checked={selectedOption === "option2"}

onChange={handleOptionChange}

/>

OK

</label>

<label>

<input

type="radio"
value="option3"

checked={selectedOption === "option3"}

onChange={handleOptionChange}

/>

Worst

</label>

</div>

);

export default RadioButtonGroup;

6.PostForm.js

import React, { useState } from 'react';

const PostForm = ({ onSubmit }) => {

const [title, setTitle] = useState('');

const [content, setContent] = useState('');

const handleSubmit = (e) => {

e.preventDefault();

onSubmit({ title, content });

setTitle('');

setContent('');

};
return (

<form onSubmit={handleSubmit}>

<input

type="text"

placeholder="title"

value={title}

onChange={(e) => setTitle(e.target.value)}

/>

<input

type="text"

placeholder="content"

value={content}

onChange={(e) => setContent(e.target.value)}

/>

<button type="submit">Submit</button>

<br></br>

</form>

);

};

export default PostForm;

7.Post.js

import React from 'react';


const Post = ({ post, onDelete }) => {

return (

<div className="post">

<h2>{post.title}</h2>

<p>{post.content}</p>

<button onClick={() => onDelete(post.id)}>Delete</button>

</div>

);

};

export default Post;

Posts.js

import React from 'react';

const Post = ({ post, handleEdit }) => {

return (

<div className="post">

<h2>{post.title}</h2>

<p>{post.content}</p>

<button onClick={() => handleEdit(post.id, prompt('Edit post:',


post.content))}>Edit</button>

</div>

);

};

export default Post;


OUTPUT:
Result:

Thus the creation of Microblog using react.js is successfully completed and the
output is verified.
Ex No:04

CREATION OF FOOD DELIVERY WEBSITE


Date:

Aim:

To create food delivery website using react.js.

Components:

In ‘src’ folder create the following components:

1. App.js

2. App.css

3.Home.js

4.Menu.js

5.Contact.js

6.orderplacing.js

7.Payment.js

1.App.js :

import { BrowserRouter,Routes, Route } from "react-router-dom";

import Home from "./pages/Home";

import Contact from "./pages/Contact";

import Menu from "./pages/Menu";

import Pagenotfound from "./pages/Pagenotfound";

import Payment from "./pages/payment";

import Amount from "./pages/OrderPlacing";

function App(){

return(

<div>
<BrowserRouter>

<Routes>

<Route path="/" element={<Home />} />

<Route path="/contact" element={<Contact/>} />

<Route path="/menu" element={<Menu />} />

<Route path="*" element={<Pagenotfound/>} />

<Route path="payment" element={<Payment/>}/>

<Route path="amount" element={<Amount/>}/>

</Routes>

</BrowserRouter>

</div>

);

export default App;

2.App.CSS :
.App {
text-align: center;

.App-logo {

height: 40vmin;

pointer-events: none;

@media (prefers-reduced-motion: no-preference) {

.App-logo {

animation: App-logo-spin infinite 20s linear;


}

.App-header {

background-color: #282c34;

min-height: 100vh;

display: flex;

flex-direction: column;

align-items: center;

justify-content: center;

font-size: calc(10px + 2vmin);

color: white;

.App-link {

color: #61dafb;

@keyframes App-logo-spin {

from {

transform: rotate(0deg);

to {

transform: rotate(360deg);

3.Home.js :

import React from 'react'

import Layout from '../components/Layout/Layout';

import {Link} from "react-router-dom";

import images from '../images/pic1.jpg';


import '../styles/HomeStyles.css';

const Home = () => {

return (

<Layout>

<div className='home' style={{backgroundImage:`url(${images})`}} >

<div className='headerContainer'>

<h1>Food Website</h1>

<p>Best Food In India</p>

<Link to="/menu">

<button>ORDER NOW </button>

</Link>

</div>

</div>

</Layout>

export default Home;

4.Menu.js :

import React from 'react';

import {MenuList} from '../data/data';

import Layout from '../components/Layout/Layout';

import {Link} from "react-router-dom";

import { Box, Card,CardActionArea, CardContent, CardMedia, Typography}from '@mui/material';

import '../styles/MenuStyle.css';
const Menu = () => {

return (

<Layout>

<div className='pay'>

<Link to="/payment">

<button>Click Here </button>

</Link>

</div>

<Box sx={{display:"flex",flexWrap:'wrap',justifyContent:'center'}}>

MenuList.map(menu =>(

<Card sx={{maxWidth:"390px",display:"flex",m:2}}>

<CardActionArea>

<CardMedia sx={{minHeight:'400px'}} component={'img'} src={menu.image}


alt={menu.name}/>

<CardContent>

<Typography variant='h5' gutterBottom component={'div'}>

{menu.name}

</Typography>

<Typography variant='body2' >

{menu.description}

</Typography>

</CardContent>

</CardActionArea>

</Card>

))

}
</Box>

</Layout>

export default Menu

5.Contact.js :

import React from 'react'

import Layout from '../components/Layout/Layout'

import { Box,Paper,TableContainer,TableHead,TableRow,Table,TableCell,Typography, TableBody


} from '@mui/material'

import CallIcon from '@mui/icons-material/Call';

import MailIcon from '@mui/icons-material/Mail';

import DeliveryDiningIcon from '@mui/icons-material/DeliveryDining';

import LocalShippingIcon from '@mui/icons-material/LocalShipping';

const Contact = () => {

return (

<Layout>

<Box sx={{ my:10,ml:10}}>

<Typography variant='h3'>Contact My Restaurant</Typography>

</Box>

<Box sx={{m:3,width:"600px"}}>

<TableContainer component={Paper}>

<Table aria-label="contact table">

<TableHead>

<TableRow>

<TableCell sx={{bgcolor:"black",color:"white"}} align='center'>Contact Details</TableCell>


</TableRow>

</TableHead>

<TableBody>

<TableRow>

<TableCell>

<CallIcon sx={{color:"blue",pt: 1}} /> 123 456 7890

</TableCell>

</TableRow>

<TableRow>

<TableCell>

<MailIcon sx={{color:"red",pt: 1}} /> [email protected]

</TableCell>

</TableRow>

<TableRow>

<TableCell>

<DeliveryDiningIcon sx={{color:"green",pt: 0}} />On Time Delivery

</TableCell>

</TableRow>

<TableRow>

<TableCell>

<LocalShippingIcon sx={{color:"black",pt: 0}} />Free Shipping

</TableCell>

</TableRow>

</TableBody>
</Table>

</TableContainer>

</Box>

<br></br>

</Layout>

export default Contact

6.orderplacing.js :

import React, { useState } from 'react';

import Layout from '../components/Layout/Layout'

import {Link} from "react-router-dom";

import LocalPizzaIcon from '@mui/icons-material/LocalPizza';

import LunchDiningIcon from '@mui/icons-material/LunchDining';

import BakeryDiningIcon from '@mui/icons-material/BakeryDining';

import FastfoodOutlinedIcon from '@mui/icons-material/FastfoodOutlined';

import LocalDrinkOutlinedIcon from '@mui/icons-material/LocalDrinkOutlined';

import FoodBankOutlinedIcon from '@mui/icons-material/FoodBankOutlined';

import '../styles/AmountStyle.css';

function App() {

const [cart, setCart] = useState([]);

const [total, setTotal] = useState(0);


const addToCart = (item) => {

const updatedCart = [...cart, item];

setCart(updatedCart);

// Calculate the total price

const totalPrice = updatedCart.reduce((acc, currentItem) => acc + currentItem.price, 0);

setTotal(totalPrice);

};

return (

<Layout>

<div className='amount'>

<h1>Food Delivery App</h1>

<br></br>

<br></br>

<div className='MENU'>

<h2>Menu</h2>

<ul>

<li>

<LocalPizzaIcon />

<button onClick={() => addToCart({ name: 'Pizza', price: 200 })}>PIZZA</button>

</li>

<br></br>

<li>

<LunchDiningIcon />

<button onClick={() => addToCart({ name: 'Burger', price: 150 })}>BURGER</button>

</li>

<br></br>

<li>

<BakeryDiningIcon />
<button onClick={() => addToCart({ name: 'Sandwitch', price: 100
})}>SANDWITCH</button>

</li>

<br></br>

<li>

<FoodBankOutlinedIcon/>

<button onClick={() => addToCart({ name: 'Chicken', price: 300 })}>CHICKEN</button>

</li>

<br></br>

<li>

<LocalDrinkOutlinedIcon />

<button onClick={() => addToCart({ name: 'Cool Drinks', price: 250 })}>COOL
DRINKS</button>

</li>

<br></br>

<li>

<FastfoodOutlinedIcon />

<button onClick={() => addToCart({ name: 'Combo', price: 500 })}>COMBO</button>

</li>

</ul>

</div>

<br></br>

<br></br>

<div className='cart'>

<h2>Cart</h2>

<p>Number of items in the cart: {cart.length}</p>

<p>Total price: Rs.{total.toFixed(2)}</p>

<ul>

{cart.map((item, index) => (

<li key={index}>

{item.name} - Rs.{item.price.toFixed(2)}
</li>

))}

</ul>

</div>

<div className='redirect'>

<Link to="/contact">

<button>click Here</button>

</Link>

</div>

</div>

<br></br>

<br></br>

</Layout>

);

export default App;

7.Payment.js :

import React from 'react';

import {MenuList} from '../data/data';

import Layout from '../components/Layout/Layout';

import {Link} from "react-router-dom";

import { Box, Card,CardActionArea, CardContent, CardMedia, Typography}from '@mui/material';

import '../styles/Style.css';

const Menu = () => {

return (
<Layout>

<div className='id'>

<Link to="/amount">

<button>Click Here </button>

</Link>

</div>

<Box>

MenuList.map(menu =>(

<Card >

<CardActionArea>

<CardContent>

<Typography variant='h5' gutterBottom component={'div'}>

{menu.name}

</Typography>

<Typography variant='body2'>

{menu.description}

</Typography>

<Typography>

{menu.price}

</Typography>

</CardContent>

</CardActionArea>

</Card>

))

</Box>

</Layout>
)

export default Menu


OUTPUT:
Result:

Thus the creation of Food Delivery Website using react.js is successfully completed
and the output is verified.
Ex No:05

CREATION OF ECOMMERCE WEBSITE


Date:

Aim:

To create ecommerce website using react.js.

Components:

In ‘src’ folder create the following components:

1. App.js

2. App.css

3.Navbar.js

4.Home.js

Pages :

5.ShopContext.js

6.LoginSignup.js

7.Product.js

8.ShopCategory.js

1.App.js :

import './App.css';

import Navbar from './components/Navbar/Navbar';

import {BrowserRouter , Routes,Route}from 'react-router-dom';

import Shop from './pages/Shop';

import ShopCategory from './pages/ShopCategory';

import Product from './pages/Product';

import Cart from './pages/Cart';


import LoginSignup from './pages/LoginSignup';

import Footer from './components/Footer/Footer';

import men_banner from './components/Assets/banner_mens.png'

import women_banner from './components/Assets/banner_women.png'

import kid_banner from './components/Assets/banner_kids.png'

function App() {

return (

<div>

<BrowserRouter>

<Navbar />

<Routes>

<Route path='/' element={<Shop/>}/>

<Route path='/mens' element={<ShopCategory banner = {men_banner} category="men"/>}/>

<Route path='/womens' element={<ShopCategory banner = {women_banner}


category="women"/>}/>

<Route path='/kids' element={<ShopCategory banner={kid_banner} category="kid"/>}/>

<Route path="product" element={<Product/>}>

<Route path=':productId' element={<Product/>}/>

</Route>

<Route path='/cart' element={<Cart/>}/>

<Route path='/login' element={<LoginSignup/>}/>

</Routes>

<Footer />

</BrowserRouter>

</div>

);

}
export default App;

2.App.CSS :

.App {

text-align: center;

.App-logo {

height: 40vmin;

pointer-events: none;

@media (prefers-reduced-motion: no-preference) {

.App-logo {

animation: App-logo-spin infinite 20s linear;

.App-header {

background-color: #282c34;

min-height: 100vh;

display: flex;

flex-direction: column;

align-items: center;

justify-content: center;

font-size: calc(10px + 2vmin);

color: white;
}

.App-link {

color: #61dafb;

@keyframes App-logo-spin {

from {

transform: rotate(0deg);

to {

transform: rotate(360deg);

3.Navbar.js :

import React, { useContext, useState } from 'react'

import './Navbar.css'

import logo from '../Assets/logo.png';

import cart_icon from '../Assets/cart_icon.png'

import { Link } from 'react-router-dom';

import { ShopContext } from '../../context/ShopContent';

const Navbar = () => {

const [ menu,setMenu] = useState("shop");

const { getTotalCartItems }= useContext(ShopContext)


return (

<div className='navbar'>

<div className='nav-logo'>

<img src={logo} alt=""/>

<p>MY FASHION</p>

</div>

<ul className='nav-menu'>

<li onClick={()=>{setMenu("shop")}}><Link to='/'>Shop</Link>{menu ===


"shop"?<hr/>:<></>}</li>

<li onClick={()=>{setMenu("mens")}}><Link to='/mens'>Men</Link>{menu ===


"mens"?<hr/>:<></>}</li>

<li onClick={()=>{setMenu("womens")}}><Link to='/womens'>Women</Link>{menu ===


"womens"?<hr/>:<></>}</li>

<li onClick={()=>{setMenu("kids")}}><Link to='/kids'>Kids</Link>{menu ===


"kids"?<hr/>:<></>}</li>

</ul>

<div className="nav-login-cart">

<Link to='/login'><button>login</button></Link>

<Link to='/cart'><img src={cart_icon} alt=''/></Link>

<div className='nav-cart-count'>{getTotalCartItems()}</div>

</div>

</div>

export default Navbar

4.Home.js :

import React from 'react'


import Hero from '../components/Hero/Hero';

import Popular from '../components/Popular/Popular';

import Offer from '../components/Offers/Offer';

import Newcollection from '../components/Newcollection/Newcollection';

import NewsLetter from '../components/NewsLetter/NewsLetter';

const Shop = () => {

return (

<div>

<Hero/>

<Popular />

<Offer />

<Newcollection />

<NewsLetter />

</div>

export default Shop

5.ShopContext.js :

import React, { createContext, useState } from "react";

import all_product from "../components/Assets/all_product";

export const ShopContext = createContext(null);

const getDefaultcart = ()=>{

let cart = {};

for(let index =0 ; index < all_product.length+1; index ++){


cart[index] = 0;

return cart;

const ShopContextProvider = (props) => {

const [cartItem, setcartItem] = useState(getDefaultcart());

const addToCart = (itemId) =>{

setcartItem((prev)=>({...prev,[itemId]:prev[itemId]+1}))

console.log(cartItem);

const removeFromCart = (itemId) =>{

setcartItem((prev)=>({...prev,[itemId]:prev[itemId]-1}))

const getTotalCartAmount = () => {

let totalAmount = 0;

for(const item in cartItem){

if(cartItem[item]>0){

let itemInfo = all_product.find((product) =>product.id===Number(item));

totalAmount += itemInfo.new_price * cartItem[item];

return totalAmount;

const getTotalCartItems = () =>{


let totalItem = 0;

for(const item in cartItem){

if(cartItem[item]>0){

totalItem +=cartItem[item];

return totalItem;

Const contextvalue =
{getTotalCartItems,getTotalCartAmount,all_product,cartItem,addToCart,removeFromCart};

return(

<ShopContext.Provider value={contextvalue}>

{props.children}

</ShopContext.Provider>

export default ShopContextProvider;

6.LoginSignup.js

import React from 'react'

import './css/LoginSignup.css'

const LoginSignup = () => {

return (

<div className='loginsignup'>

<div className="loginsignup-container">

<h1>
Sign Up

</h1>

<div className="loginsignup-fields">

<input type='text' placeholder='your Name' />

<input type="email" placeholder='Email Address'/>

<input type="password" placeholder='password'/>

</div>

<button>Continue</button>

<p className="loginsignup-login">Already have an account? <span>Login here </span></p>

<div className="loginsignup-agree">

<input type='checkbox' name='' id='' />

<p>By Continuing , i agree to the terms of use & privacy policy.</p>

</div>

</div>

</div>

export default LoginSignup

7.Product.js

import React, { useContext } from 'react'

import { ShopContext } from '../context/ShopContent';

import { useParams } from 'react-router-dom';

import Breadcrum from '../components/Breadcrums/Breadcrums';

import ProductDisplay from '../components/ProductDisplay/ProductDisplay';

import Description from '../components/DescriptionBox/Description';

import Related from '../components/Related Products/Related';


const Product = () => {

const {all_product} = useContext(ShopContext);

const {productId} = useParams();

const product = all_product.find((e)=>e.id === Number(productId));

return (

<div>

<Breadcrum product = {product}/>

<ProductDisplay product={product}/>

<Description />

<Related />

</div>

export default Product

8.ShopCategory.js

import React, { useContext } from 'react'

import './css/Shoopcategory.css'

import { ShopContext } from '../context/ShopContent'

import dropdown_icon from '../components/Assets/dropdown_icon.png'

import Item from '../components/xxx/xxx'

const ShopCategory = (props) => {

const {all_product } = useContext(ShopContext);

return (

<div className='shop-category'>

<img className='shopcategory-banner' src={props.banner} alt=''/>


<div className='shopcategory-indexsort'>

<p>

<span>Showing 1-12</span>out of 36 products

</p>

<div className="shopcategory-sort">

sort by <img src={dropdown_icon} alt=" "/>

</div>

</div>

<div className="shopcategory-products">

{all_product.map((item,i)=>{

if (props.category === item.category){

return <Item key={i} id={item.id} name={item.name} image={item.image}


new_price={item.new_price} old_price={item.old_price} />

else{

return null;

})}

</div>

<div className="shopcategory-load">

Explore More

</div>

</div>

export default ShopCategory


OUTPUT:
Result:

Thus the creation of Ecommerce Website using react.js is successfully completed and
the output is verified
EX.NO:
CREATE LEAVE MANAGEMENT SYSTEM
DATE:
APP USING REACT JS

Aim:

To create Leave Management system app using react.js.

Components:

In ‘src’ folder create the following components:

1.App.js

2.Index.js

3.AdminHouse.js

4.AdminLogin.js

5.Maintanance.js

6.Navbar.js

7.Pagenotfound.js

APP.JS:
INDEX.JS:

ADMINHOME.JS:
ADMINLOGIN.JS:
MAINTAINANCE.JS:
NAVBAR.JS:

PAGENOTFOUND.JS:
OUTPUT:
Result:

Thus, the creation of Leave management system app using react.js is successfully
completed and the output is verified.
EX.NO:
CREATE PROJECT DASHBOARD
DATE:
APP USING REACT JS

Aim:

To create Project Dashboard app using react.js.

Components:

In ‘src’ folder create the following components:

1.App.js

2.Index.js

3.Card.js

4.Button.js

5.Input.js

6.List.js

APP.JS:
INDEX.JS:

BUTTON.JS:

CARD.JS:
INPUT.JS:

LIST.JS:
OUTPUT:
Result:

Thus, the creation of Project Dashboard app using react.js is successfully completed
and the output is verified.
EX.NO:
CREATE ONLINE SURVEY
DATE:
APPLICATION USING REACT JS

Aim:

To create online survey application using react.js.

Components:

In ‘src’ folder create the following components:

1.App.js

2.Index.js

3.Card.js

4.Button.js

5.Input.js

APP.JS:
INDEX.JS:

BUTTON.JS:
INPUT.JS:
OUTPUT:
Result:

Thus, the creation of Online Survey application using react.js is successfully


completed and the output is verified.

You might also like