Professional Documents
Culture Documents
Date:
“Web Technology”
Submitted by
Prof.Vidya Shinde
Guide
Department of Computer Engineering
WTL Mini Project
Technologies Used:-
Software:-Windows 7,8 or 10, Any Web Browser.
Functional requirements are the main functions which the system is supposed to have. The
functional requirements of the developed website are:
Home Page
It is the first page of this website. It is simply a first page it does not provide any personal
information but have a personal name and a profession only.
About page
provides some personal information and it also contain personal CV which can be downloaded by
the viewer.
Services
Services page provides information related to my own services.
Contact
Contact page provides my personal contact information like address, phone number and email
address and there is a contact form. Using that form any user can be able to contact me. Submitted
details will be store in database and will be receive it via mail. Non-Functional Requirements of this
website are:
Flowchart:-
Experience
Skill Section
TESTIMONIAL
Contact
YES NO
Index.html
<!DOCTYPE html>
<html lang="en">
<head>
<style>
@font-face {
font-family: Gumela;
src: url('../src/fonts/*');
*{
font-weight: normal;
font-size: 20px;
}
</style>
<title>React App</title>
</head>
<body>
<div class="cursor"></div>
<div id="root"></div>
<div id="main">
<div class="buttons">
</div>
</div>
<script src='https://cdnjs.cloudflare.com/ajax/libs/gsap/3.2.6/gsap.min.js'></script>
<scriptsrc="./script.js"></script>
<!-- cursor script below -->
<script>
document.addEventListener('mousemove', e=> {
})
document.addEventListener('click', () => {
cursor.classList.add("expand");
setTimeout(() =>{
cursor.classList.remove("expand");
},500)
})
</script>
<!--</div> -->
<!--<audio id="mySong">
</audio>
<script>
varmySong = document.getElementById("mySong");
icon.onclick = function(){
mySong.play();
</script> -->
</body>
</html>
APP.css
:root
--yellow: #F5C32C;
--blue: #2c87ff;
--orange : #2c87ff;
--black : #000000;
--gray : #000000;
--blueCard : #DDF8FE;
.cursor{
width: 20px;
height: 20px;
border-radius: 50%;
position: absolute;
/* transition-duration: 10ms; */
transition-timing-function: ease-out;
/* z-index: ; */
.cursor::after{
content:"";
width: 20px;
height: 20px;
position: absolute;
border-radius: 50%;
opacity: .5;
top: -8px;
left: -8px;
}
@keyframescursorAnim {
from {
transform: scale(1.5);
to {
transform: scale(.7);
@keyframes cursorAnim2 {
from {
transform: scale(1.5);
to {
transform: scale(.4);
@keyframes cursorAnim3 {
0% {
transform: scale(1);
50% {
transform: scale(4);
100% {
transform: scale(1);
opacity: 0;
.expand {
body{
margin: 0;
height: 100vh;
/* cursor: none; */
.App{
overflow: hidden;
color: var(--black);
.button {
border-radius: 34px;
border: none;
color: white;
font-size: 16px;
.button:hover {
background: white;
cursor: pointer;
color: var(--blue);
/* music */
.right-col{
position: relative;
top: -2950px;
left: 400px;
/* cursor: pointer; */
#icon{
cursor: pointer;
position: relative;
top: -2905px;
left: 1200px;
padding-top: 1px;
z-index: 1;
opacity: 0.1;
transform:scale(1.5) ;
z-index: 1;
/* animation-duration: 10ms; */
/* animation-delay: 10ms; */
#icon:hover{
transform: scale(1.8);
transition: 200ms ;
.App {
#icon{
cursor: pointer;
position: relative;
top: -2755px;
left: 75px;
transform: scale(.6);
z-index: 9;
APP.js
importNavbar from "./components/Navbar/Navbar";
import "./App.css";
function App() {
constdarkMode = theme.state.darkMode;
return (
<div
className="App"
style={{
}}
>
<Navbar />
<Intro />
<Services />
<Experience />
<Works />
<Portfolio />
<Testimonial />
<Contact />
<Footer />
</div>
);
Context.js
import { createContext, useReducer } from "react";
exportconstthemeContext = createContext();
switch (action.type) {
case "toggle":
default:
return state;
};
return (
<themeContext.Provider value={{state,
dispatch}}>{props.children}</themeContext.Provider>
);
};
Index.js:
// Scrollbar.init(document.querySelector('#my-scrollbar'));
ReactDOM.render(
<ThemeProvider>
<App />
</ThemeProvider>,
document.getElementById('root')
);
Package.json
{
"name": "portofolio",
"version": "0.1.0",
"private": true,
"dependencies": {
"@emailjs/browser": "^3.4.0",
"@iconscout/react-unicons": "^1.1.6",
"@testing-library/jest-dom": "^5.14.1",
"@testing-library/react": "^12.0.0",
"@testing-library/user-event": "^13.2.1",
"framer-motion": "^6.2.8",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-scripts": "5.0.0",
"react-scroll": "^1.8.6",
"smooth-scrollbar": "^8.7.4",
"swiper": "^8.0.7",
"web-vitals": "^2.1.0"
},
"scripts": {
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"notop_mini all"
],
"development": [
}
}
Output:-
Home:
Service/academic:
Cursor animation:
RESPONSIVE
RESPONSIVE
RESPONSIVE
DARK THEME: