├── .eslintrc.cjs ├── .firebase └── hosting.ZGlzdA.cache ├── .firebaserc ├── .gitignore ├── README.md ├── firebase.json ├── index.html ├── package-lock.json ├── package.json ├── postcss.config.js ├── public ├── CNAME ├── data.json └── vite.svg ├── src ├── App.css ├── App.jsx ├── Context │ └── AuthContext.jsx ├── Layouts │ └── MainLayouts.jsx ├── Pages │ ├── About │ │ └── About.jsx │ ├── Blog │ │ └── Blog.jsx │ ├── Contact │ │ └── Contact.jsx │ ├── ErrorPage │ │ └── ErrorPage.jsx │ ├── Home │ │ └── Home.jsx │ └── ServiceDetails │ │ └── ServiceDetails.jsx ├── Routes │ ├── PrivateRoutes.jsx │ └── Router.jsx ├── assets │ ├── Team-memeber-01.png │ ├── Team-memeber-2-.png │ ├── b1.png │ ├── b2.png │ ├── b3.png │ ├── b4.png │ ├── hero.png │ ├── logo (1).png │ ├── react.svg │ ├── s1-png.png │ ├── s2.png │ ├── s3.png │ ├── s4.png │ ├── s5.png │ ├── s6.png │ ├── team-3.jpeg │ ├── team4.jpeg │ ├── team5.jpeg │ └── team6-02.jpg ├── components │ ├── Banner │ │ └── Banner.jsx │ ├── Footer │ │ └── Footer.jsx │ ├── Login │ │ └── Login.jsx │ ├── Navbar │ │ └── Navbar.jsx │ ├── Price │ │ └── Price.jsx │ ├── Service │ │ └── Service.jsx │ ├── Services │ │ └── Services.jsx │ ├── SignUp │ │ └── SignUp.jsx │ └── Team │ │ └── Team.jsx ├── firebase │ └── firebase.config.js ├── index.css └── main.jsx ├── tailwind.config.js └── vite.config.js /.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { browser: true, Node:true, es2020: true }, 4 | extends: [ 5 | 'eslint:recommended', 6 | 'plugin:react/recommended', 7 | 'plugin:react/jsx-runtime', 8 | 'plugin:react-hooks/recommended', 9 | ], 10 | ignorePatterns: ['dist', '.eslintrc.cjs'], 11 | parserOptions: { ecmaVersion: 'latest', sourceType: 'module' }, 12 | settings: { react: { version: '18.2' } }, 13 | plugins: ['react-refresh'], 14 | rules: { 15 | 'react-refresh/only-export-components': [ 16 | 'warn', 17 | { allowConstantExport: true }, 18 | ], 19 | }, 20 | } 21 | // Eslintrc -------------------------------------------------------------------------------- /.firebase/hosting.ZGlzdA.cache: -------------------------------------------------------------------------------- 1 | index.html,1696730705140,945185c78e2e5a0cb601c60a11db6d8fb3cbd02316525aab85c3b49cf92caa87 2 | assets/react-35ef61ed.svg,1696730705127,bac01e3301abbc1151dff31d832a4f7a94dd0251728642933a3b0d6215f5028c 3 | assets/team4-72f3daa8.jpeg,1696730705140,cd1737c9c0a1f740c5b08fc1dc8e063722402547ad3af6e5878d5c8a9ec2d699 4 | assets/team5-ab41517a.jpeg,1696730705140,16f43b0c6390fa20bbdfc0eed35b8ebe8af8c206634cc9508d64ae21f0f32f10 5 | assets/team6-02-b696bdbc.jpg,1696730705140,0255b0c2bf7b325a906069be619c205e95fd302162f6775c4d8bb53538bc172b 6 | assets/index-28ea5027.css,1696730705140,fa3e0998e9a64d2828ced27b7c69b7ea6386d76f0413c2ab94c4329c427e22d7 7 | vite.svg,1693633113365,59ec4b6085a0cb1bf712a5e48dd5f35b08e34830d49c2026c18241be04e05d5a 8 | data.json,1696667562178,103e7d04520341713b96eb1377ca5ab08742b140bc53a0adcc653f2b77072cec 9 | assets/b3-c289e33c.png,1696730705135,cf5d849055ceafb063c1e63fd3829a31b140522b56d3447978df81c4b71555fa 10 | assets/b4-23d43487.png,1696730705143,112a25882dfafb23d14583662da4aca106fc8d5a91678d9bd34d6c3e8acb87dc 11 | assets/b2-e2c4eb96.png,1696730705134,f1f206900a7d46f1339aaf9b2385a5a7afc8e137c8ea2e367c7b6f0fdfb4a5cb 12 | assets/b1-11caa3bf.png,1696730705134,fd61673238f530cd1715e4d7ef78cdd5f46d9e18a6d049db882f6926fb975c79 13 | assets/s3-d20b52fc.png,1696730705135,5c8f2fa5593be557eda43d8423a22a3b8ea77b24889f620634a23f9dc1420905 14 | assets/s4-7dde10c9.png,1696730705135,8065720b74ea00d889bf211af201abb95018b795c70dc762b93f0e32d64455f6 15 | assets/hero-d0ccac9a.png,1696730705135,3caf66b2b4bee312ffc9a8926fd4d1fdeef33185028ffbeaf7328a83fe9178a3 16 | assets/Team-memeber-01-adba48f1.png,1696730705141,d39523208537596c1910d050fb065cfddbe732911ca85e1d78f92767c0e8f8f0 17 | assets/Team-memeber-2--b15a7235.png,1696730705140,d93214e3e4f1bedfdc14e86221b5bd4b61fd72c1777b0868c6fd61681b2228b3 18 | assets/s6-79ae6936.png,1696730705140,41e85f9692ea2fc0cd5ccb80d9de83a548ddc4458f681a2a48f9efb6e494e9cb 19 | assets/index-d52889fc.js,1696730705142,57a7ba0137aa23ff8fb90878efd4fcaf65763d5e54a2a60904c58fafeceb6fbd 20 | -------------------------------------------------------------------------------- /.firebaserc: -------------------------------------------------------------------------------- 1 | { 2 | "projects": { 3 | "default": "event-lab-551ad" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | # gitignore 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Hazrat Ali 2 | 3 | # Programmer || Software Engineering 4 | 5 | # Live : -------------------------------------------------------------------------------- /firebase.json: -------------------------------------------------------------------------------- 1 | { 2 | "hosting": { 3 | "public": "dist", 4 | "ignore": [ 5 | "firebase.json", 6 | "**/.*", 7 | "**/node_modules/**" 8 | ], 9 | "rewrites": [ 10 | { 11 | "source": "**", 12 | "destination": "/index.html" 13 | } 14 | ] 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Event Lab 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "event-lab", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "vite build", 9 | "lint": "eslint . --ext js,jsx --report-unused-disable-directives --max-warnings 0", 10 | "preview": "vite preview" 11 | }, 12 | "dependencies": { 13 | "aos": "^2.3.4", 14 | "firebase": "^10.4.0", 15 | "localforage": "^1.10.0", 16 | "match-sorter": "^6.3.1", 17 | "moment": "^2.29.4", 18 | "react": "^18.2.0", 19 | "react-dom": "^18.2.0", 20 | "react-icons": "^4.11.0", 21 | "react-router-dom": "^6.16.0", 22 | "sort-by": "^1.2.0", 23 | "sweetalert2": "^11.7.32" 24 | }, 25 | "devDependencies": { 26 | "@types/react": "^18.2.15", 27 | "@types/react-dom": "^18.2.7", 28 | "@vitejs/plugin-react": "^4.0.3", 29 | "autoprefixer": "^10.4.16", 30 | "daisyui": "^3.9.2", 31 | "eslint": "^8.45.0", 32 | "eslint-plugin-react": "^7.32.2", 33 | "eslint-plugin-react-hooks": "^4.6.0", 34 | "eslint-plugin-react-refresh": "^0.4.3", 35 | "postcss": "^8.4.31", 36 | "tailwindcss": "^3.3.3", 37 | "vite": "^4.4.5" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | // Postcss config -------------------------------------------------------------------------------- /public/CNAME: -------------------------------------------------------------------------------- 1 | https://event-lab-551ad.web.app 2 | -------------------------------------------------------------------------------- /public/data.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id":"1", 4 | "name": "Tech Innovators Summit", 5 | "image": "https://i.ibb.co/17x57Nk/s1-png.png", 6 | "price": "$500", 7 | "description": "The Tech Innovators Summit is an annual gathering of visionaries, innovators, and industry leaders at the forefront of the technology revolution. With a rich history dating back to its inception, this conference has consistently provided a platform for the exchange of groundbreaking ideas, fostering collaboration, and driving technological advancement.At the heart of the Tech Innovators Summit is the commitment to exploring the latest trends in technology and how they impact our world. Whether you're a seasoned tech veteran or an emerging startup, this conference offers something for everyone. From in-depth technical sessions and hands-on workshops to thought-provoking keynote addresses, the summit is designed to inspire and inform" 8 | }, 9 | { 10 | "id":"2", 11 | "name": "GreenTech Expo", 12 | "image": "https://i.ibb.co/VCJc0Bb/s2.png", 13 | "price": "$250", 14 | "description": "The GreenTech Expo is a premier event dedicated to sustainability, environmental conservation, and the latest advancements in green technology. It serves as a vital platform for professionals, researchers, and eco-enthusiasts to come together and explore innovative solutions for a more sustainable future.As the world grapples with pressing environmental challenges such as climate change, deforestation, and resource depletion, the need for sustainable practices and technologies has never been more urgent. The GreenTech Expo addresses these challenges head-on by showcasing cutting-edge innovations in renewable energy, eco-friendly transportation, waste reduction, and more." 15 | }, 16 | { 17 | "id":"3", 18 | "name": "Future of Healthcare Symposium", 19 | "image": "https://i.ibb.co/fXFwrHS/s4.png", 20 | "price": "$300", 21 | "description": "The Future of Healthcare Symposium is a dynamic and forward-thinking conference dedicated to exploring the transformative trends, technologies, and strategies shaping the future of healthcare. In an era of rapid innovation, this symposium serves as a vital platform for healthcare professionals, researchers, and innovators to come together and chart a course for a healthier tomorrow.Healthcare is in the midst of a profound transformation, driven by advances in digital health, personalized medicine, telemedicine, and artificial intelligence. The Future of Healthcare Symposium delves into these disruptive forces and their potential to improve patient care, enhance clinical outcomes, and make healthcare more accessible and equitable." 22 | }, 23 | { 24 | "id":"4", 25 | "name": "Global Entrepreneurship Summit", 26 | "image": "https://i.ibb.co/44Jtkyc/s5.png", 27 | "price": "$800", 28 | "description": "The Global Entrepreneurship Summit (GES) is an annual gathering of entrepreneurs, investors, policymakers, and innovators from around the world. With a mission to foster innovation, create economic opportunities, and drive global prosperity, GES has established itself as a premier platform for entrepreneurship and collaboration.The summit brings together a diverse group of individuals, from seasoned entrepreneurs scaling their businesses to aspiring founders with groundbreaking ideas. It offers a unique opportunity to connect, learn, and explore avenues for growth in an ever-evolving entrepreneurial landscape." 29 | }, 30 | { 31 | "id":"5", 32 | "name": "Education Excellence Conference", 33 | "image": "https://i.ibb.co/6rCGR1L/s6.png", 34 | "price": "$100", 35 | "description": "The Education Excellence Conference is a prestigious gathering of educators, policymakers, researchers, and thought leaders dedicated to advancing education and learning in the 21st century. It serves as a platform for exchanging ideas, sharing best practices, and exploring innovative approaches to educational excellence.In today's rapidly changing world, education plays a pivotal role in shaping the future. The Education Excellence Conference acknowledges this significance and brings together a diverse community of professionals committed to delivering high-quality education at all levels." 36 | }, 37 | { 38 | "id":"6", 39 | "name": "Social Media Marketing", 40 | "image": "https://i.ibb.co/RBHDrFn/b1.png", 41 | "price": "$400", 42 | "description": "In the ever-evolving landscape of digital marketing, Social Media Marketing (SMM) has emerged as a powerful and indispensable tool for businesses and individuals alike. SMM is not merely a trend; it's a dynamic discipline that enables brands to connect with their target audience, build brand awareness, and drive engagement like never before.At its core, Social Media Marketing involves leveraging various social media platforms—such as Facebook, Instagram, Twitter, LinkedIn, and TikTok—to create and share content that resonates with a specific audience. This content can take various forms, from eye-catching visuals and informative articles to engaging videos and interactive stories. SMM professionals are adept at crafting compelling narratives and utilizing data-driven insights to tailor content to the preferences of their audience." 43 | } 44 | ] 45 | -------------------------------------------------------------------------------- /public/vite.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/App.css: -------------------------------------------------------------------------------- 1 | #root { 2 | max-width: 1280px; 3 | margin: 0 auto; 4 | padding: 2rem; 5 | text-align: center; 6 | } 7 | 8 | .logo { 9 | height: 6em; 10 | padding: 1.5em; 11 | will-change: filter; 12 | transition: filter 300ms; 13 | } 14 | .logo:hover { 15 | filter: drop-shadow(0 0 2em #646cffaa); 16 | } 17 | .logo.react:hover { 18 | filter: drop-shadow(0 0 2em #61dafbaa); 19 | } 20 | 21 | @keyframes logo-spin { 22 | from { 23 | transform: rotate(0deg); 24 | } 25 | to { 26 | transform: rotate(360deg); 27 | } 28 | } 29 | 30 | @media (prefers-reduced-motion: no-preference) { 31 | a:nth-of-type(2) .logo { 32 | animation: logo-spin infinite 20s linear; 33 | } 34 | } 35 | 36 | .card { 37 | padding: 2em; 38 | } 39 | 40 | .read-the-docs { 41 | color: #888; 42 | } 43 | -------------------------------------------------------------------------------- /src/App.jsx: -------------------------------------------------------------------------------- 1 | import { useState } from 'react' 2 | import reactLogo from './assets/react.svg' 3 | import viteLogo from '/vite.svg' 4 | import './App.css' 5 | 6 | function App() { 7 | const [count, setCount] = useState(0) 8 | 9 | return ( 10 | <> 11 | 12 | 13 | ) 14 | } 15 | 16 | export default App 17 | -------------------------------------------------------------------------------- /src/Context/AuthContext.jsx: -------------------------------------------------------------------------------- 1 | import React, { createContext, useContext, useEffect, useState } from 'react'; 2 | import { GoogleAuthProvider, createUserWithEmailAndPassword, onAuthStateChanged, signInWithEmailAndPassword, signInWithPopup, signOut, updateProfile } from "firebase/auth"; 3 | import { auth } from '../firebase/firebase.config'; 4 | export const FirebaseContext = createContext(null); 5 | 6 | const AuthContext = ({ children }) => { 7 | const [user, setUser] = useState(null); 8 | const [loading, setLoading] = useState(true); 9 | const googleProvider = new GoogleAuthProvider(); 10 | //google 11 | const googleSignUp = () => { 12 | setLoading(true) 13 | return signInWithPopup(auth, googleProvider) 14 | } 15 | 16 | // ‍sign up 17 | const signUp = (email, password) => { 18 | setLoading(true) 19 | return createUserWithEmailAndPassword(auth, email, password) 20 | } 21 | 22 | // ‍sign in 23 | const signIn = (email, password) => { 24 | setLoading(true) 25 | return signInWithEmailAndPassword(auth, email, password) 26 | } 27 | //manage user 28 | useEffect(() => { 29 | onAuthStateChanged(auth, (user) => { 30 | setUser(user); 31 | setLoading(false) 32 | }); 33 | }, []); 34 | 35 | //log out 36 | const LogOut = () => { 37 | setLoading(true) 38 | return signOut(auth); 39 | }; 40 | 41 | //update profile 42 | const handleUpdateProfile = (name, photo) => { 43 | return updateProfile(auth.currentUser, { 44 | displayName: name, photoURL: photo 45 | }) 46 | } 47 | 48 | 49 | 50 | //value 51 | const authInfo = { 52 | googleSignUp, 53 | signUp, 54 | signIn, 55 | user, 56 | LogOut, 57 | loading, 58 | handleUpdateProfile 59 | } 60 | return ( 61 | 62 | {children} 63 | 64 | ); 65 | }; 66 | 67 | export default AuthContext; -------------------------------------------------------------------------------- /src/Layouts/MainLayouts.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import Navbar from '../components/Navbar/Navbar'; 3 | import { Outlet } from 'react-router-dom'; 4 | import Footer from '../components/Footer/Footer'; 5 | // Layout 6 | const MainLayouts = () => { 7 | return ( 8 |
9 |
10 | 11 |
12 | 13 |
15 | ); 16 | }; 17 | 18 | export default MainLayouts; -------------------------------------------------------------------------------- /src/Pages/About/About.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | // About 3 | const About = () => { 4 | return ( 5 |
6 | about 7 |
8 | ); 9 | }; 10 | 11 | export default About; -------------------------------------------------------------------------------- /src/Pages/Blog/Blog.jsx: -------------------------------------------------------------------------------- 1 | import img1 from '../../assets/b1.png'; 2 | import img2 from '../../assets/b2.png'; 3 | import img3 from '../../assets/b3.png'; 4 | import img4 from '../../assets/b4.png'; 5 | import img5 from '../../assets/s3.png'; 6 | import img6 from '../../assets/s4.png'; 7 | import img7 from '../../assets/s6.png'; 8 | 9 | // Blogs 10 | 11 | const Blog = () => { 12 | return ( 13 |
14 |
15 |
16 | 17 | 18 |
19 |

Noster tincidunt reprimique ad pro

20 | February 19, 2021 21 |

Ei delenit sensibus liberavisse pri. Quod suscipit no nam. Est in graece fuisset, eos affert putent doctus id.

22 |
23 |
24 |
25 | 26 | 27 |
28 |

In usu laoreet repudiare legendos

29 | January 21, 2021 30 |

Mei ex aliquid eleifend forensibus, quo ad dicta apeirian neglegentur, ex has tantas percipit perfecto. At per tempor albucius perfecto, ei probatus consulatu patrioque mea, ei vocent delicata indoctum pri.

31 |
32 |
33 | 34 | 35 |
36 |

In usu laoreet repudiare legendos

37 | January 22, 2021 38 |

Mei ex aliquid eleifend forensibus, quo ad dicta apeirian neglegentur, ex has tantas percipit perfecto. At per tempor albucius perfecto, ei probatus consulatu patrioque mea, ei vocent delicata indoctum pri.

39 |
40 |
41 | 42 | 43 |
44 |

In usu laoreet repudiare legendos

45 | January 23, 2021 46 |

Mei ex aliquid eleifend forensibus, quo ad dicta apeirian neglegentur, ex has tantas percipit perfecto. At per tempor albucius perfecto, ei probatus consulatu patrioque mea, ei vocent delicata indoctum pri.

47 |
48 |
49 | 50 | 51 |
52 |

In usu laoreet repudiare legendos

53 | January 24, 2021 54 |

Mei ex aliquid eleifend forensibus, quo ad dicta apeirian neglegentur, ex has tantas percipit perfecto. At per tempor albucius perfecto, ei probatus consulatu patrioque mea, ei vocent delicata indoctum pri.

55 |
56 |
57 | 58 | 59 |
60 |

In usu laoreet repudiare legendos

61 | January 25, 2021 62 |

Mei ex aliquid eleifend forensibus, quo ad dicta apeirian neglegentur, ex has tantas percipit perfecto. At per tempor albucius perfecto, ei probatus consulatu patrioque mea, ei vocent delicata indoctum pri.

63 |
64 |
65 | 66 | 67 |
68 |

In usu laoreet repudiare legendos

69 | January 26, 2021 70 |

Mei ex aliquid eleifend forensibus, quo ad dicta apeirian neglegentur, ex has tantas percipit perfecto. At per tempor albucius perfecto, ei probatus consulatu patrioque mea, ei vocent delicata indoctum pri.

71 |
72 |
73 |
74 |
75 | 76 |
77 |
78 |
79 |
80 | ); 81 | }; 82 | 83 | export default Blog; -------------------------------------------------------------------------------- /src/Pages/Contact/Contact.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | // Contact 3 | const Contact = () => { 4 | return ( 5 |
6 |
7 |
8 |
9 |

Get in touch

10 |

Fill in the form to start a conversation

11 |
12 |

13 | 14 | 15 | 16 | 2752 Willison Street Eagan, United State 17 |

18 |

19 | 20 | 21 | 22 | 123456789 23 |

24 |

25 | 26 | 27 | 28 | 29 | contact@business.com 30 |

31 |
32 |
33 |
34 | 38 | 42 | 46 | 47 |
48 |
49 |
50 |
51 | ); 52 | }; 53 | 54 | export default Contact; -------------------------------------------------------------------------------- /src/Pages/ErrorPage/ErrorPage.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Link } from 'react-router-dom'; 3 | 4 | const ErrorPage = () => { 5 | return ( 6 |
7 |
8 |
9 |
10 |

11 | Error404 12 |

13 |

Sorry, we couldn't find this page.

14 |

But dont worry, you can find plenty of other things on our homepage.

15 | Back to homepage 16 |
17 |
18 |
19 |
20 | ); 21 | }; 22 | 23 | export default ErrorPage; -------------------------------------------------------------------------------- /src/Pages/Home/Home.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import Price from '../../components/Price/Price'; 3 | import Team from '../../components/Team/Team'; 4 | import Banner from '../../components/Banner/Banner'; 5 | import Service from '../../components/Service/Service'; 6 | import { useLoaderData } from 'react-router-dom'; 7 | import Services from '../../components/Services/Services'; 8 | 9 | // Home 10 | 11 | const Home = () => { 12 | const services = useLoaderData() 13 | 14 | return ( 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | ); 25 | }; 26 | 27 | export default Home; 28 | -------------------------------------------------------------------------------- /src/Pages/ServiceDetails/ServiceDetails.jsx: -------------------------------------------------------------------------------- 1 | import React, { useEffect, useState } from 'react'; 2 | import { Link, useLoaderData, useParams } from 'react-router-dom'; 3 | // Service 4 | const ServiceDetails = () => { 5 | const [data, setData] = useState({}); 6 | const {id} = useParams(); 7 | const services = useLoaderData(); 8 | console.log(id); 9 | 10 | useEffect(() => { 11 | const singleService = services?.find(service => id === service.id) 12 | setData(singleService); 13 | console.log(singleService); 14 | 15 | },[id,services]) 16 | return ( 17 |
18 |
19 |
20 |
21 | 22 |
23 | 24 |

{data.name }

25 |

Price : {data.price }

26 |

{data.description }

27 |
28 | 29 | 30 | 31 | 32 |
33 |
34 |
35 | 36 |
37 |
38 |
39 | ); 40 | }; 41 | 42 | export default ServiceDetails; -------------------------------------------------------------------------------- /src/Routes/PrivateRoutes.jsx: -------------------------------------------------------------------------------- 1 | import React, { useContext } from 'react'; 2 | import { FirebaseContext } from '../Context/AuthContext'; 3 | import { Navigate, useLocation } from 'react-router-dom'; 4 | 5 | 6 | // private Route 7 | const PrivateRoutes = ({ children }) => { 8 | const location = useLocation(); 9 | 10 | const { user, loading } = useContext(FirebaseContext); 11 | if (loading) { 12 | return
13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | } 23 | if (user) { 24 | return children 25 | } 26 | return 27 | } 28 | export default PrivateRoutes; -------------------------------------------------------------------------------- /src/Routes/Router.jsx: -------------------------------------------------------------------------------- 1 | import { createBrowserRouter } from "react-router-dom"; 2 | import MainLayouts from "../Layouts/MainLayouts"; 3 | import Home from "../Pages/Home/Home"; 4 | import About from "../Pages/About/About"; 5 | import Blog from "../Pages/Blog/Blog"; 6 | import Login from "../components/Login/Login"; 7 | import SignUp from "../components/SignUp/SignUp"; 8 | import Contact from "../Pages/Contact/Contact"; 9 | import ServiceDetails from "../Pages/ServiceDetails/ServiceDetails"; 10 | import PrivateRoutes from "./PrivateRoutes"; 11 | import ErrorPage from "../Pages/ErrorPage/ErrorPage"; 12 | 13 | export const router = createBrowserRouter([ 14 | { 15 | path: '/', 16 | element: , 17 | errorElement:, 18 | children: [ 19 | { 20 | path: '/', 21 | element: , 22 | loader:()=> fetch('/data.json') 23 | }, 24 | { 25 | path: '/about', 26 | element: 27 | }, 28 | { 29 | path: '/blog', 30 | element: 31 | }, 32 | { 33 | path: '/contact', 34 | element: 35 | }, 36 | { 37 | path: '/login', 38 | element: 39 | }, 40 | { 41 | path: '/signUp', 42 | element: 43 | }, 44 | { 45 | path: '/details/:id', 46 | element: , 47 | loader:()=> fetch('/data.json') 48 | }, 49 | ] 50 | } 51 | ]) -------------------------------------------------------------------------------- /src/assets/Team-memeber-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hazrat-Ali9/Event-Lab/e35494ac5ead1323480534c6a25f65584140a84b/src/assets/Team-memeber-01.png -------------------------------------------------------------------------------- /src/assets/Team-memeber-2-.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hazrat-Ali9/Event-Lab/e35494ac5ead1323480534c6a25f65584140a84b/src/assets/Team-memeber-2-.png -------------------------------------------------------------------------------- /src/assets/b1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hazrat-Ali9/Event-Lab/e35494ac5ead1323480534c6a25f65584140a84b/src/assets/b1.png -------------------------------------------------------------------------------- /src/assets/b2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hazrat-Ali9/Event-Lab/e35494ac5ead1323480534c6a25f65584140a84b/src/assets/b2.png -------------------------------------------------------------------------------- /src/assets/b3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hazrat-Ali9/Event-Lab/e35494ac5ead1323480534c6a25f65584140a84b/src/assets/b3.png -------------------------------------------------------------------------------- /src/assets/b4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hazrat-Ali9/Event-Lab/e35494ac5ead1323480534c6a25f65584140a84b/src/assets/b4.png -------------------------------------------------------------------------------- /src/assets/hero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hazrat-Ali9/Event-Lab/e35494ac5ead1323480534c6a25f65584140a84b/src/assets/hero.png -------------------------------------------------------------------------------- /src/assets/logo (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hazrat-Ali9/Event-Lab/e35494ac5ead1323480534c6a25f65584140a84b/src/assets/logo (1).png -------------------------------------------------------------------------------- /src/assets/react.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/s1-png.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hazrat-Ali9/Event-Lab/e35494ac5ead1323480534c6a25f65584140a84b/src/assets/s1-png.png -------------------------------------------------------------------------------- /src/assets/s2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hazrat-Ali9/Event-Lab/e35494ac5ead1323480534c6a25f65584140a84b/src/assets/s2.png -------------------------------------------------------------------------------- /src/assets/s3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hazrat-Ali9/Event-Lab/e35494ac5ead1323480534c6a25f65584140a84b/src/assets/s3.png -------------------------------------------------------------------------------- /src/assets/s4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hazrat-Ali9/Event-Lab/e35494ac5ead1323480534c6a25f65584140a84b/src/assets/s4.png -------------------------------------------------------------------------------- /src/assets/s5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hazrat-Ali9/Event-Lab/e35494ac5ead1323480534c6a25f65584140a84b/src/assets/s5.png -------------------------------------------------------------------------------- /src/assets/s6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hazrat-Ali9/Event-Lab/e35494ac5ead1323480534c6a25f65584140a84b/src/assets/s6.png -------------------------------------------------------------------------------- /src/assets/team-3.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hazrat-Ali9/Event-Lab/e35494ac5ead1323480534c6a25f65584140a84b/src/assets/team-3.jpeg -------------------------------------------------------------------------------- /src/assets/team4.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hazrat-Ali9/Event-Lab/e35494ac5ead1323480534c6a25f65584140a84b/src/assets/team4.jpeg -------------------------------------------------------------------------------- /src/assets/team5.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hazrat-Ali9/Event-Lab/e35494ac5ead1323480534c6a25f65584140a84b/src/assets/team5.jpeg -------------------------------------------------------------------------------- /src/assets/team6-02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hazrat-Ali9/Event-Lab/e35494ac5ead1323480534c6a25f65584140a84b/src/assets/team6-02.jpg -------------------------------------------------------------------------------- /src/components/Banner/Banner.jsx: -------------------------------------------------------------------------------- 1 | import heroImg from '../../assets/hero.png'; 2 | import { FaCalendar, FaLandmark, FaLocationArrow, FaMicrophone, FaPersonBooth } from "react-icons/fa"; 3 | import moment from 'moment'; 4 | import AOS from 'aos'; 5 | import 'aos/dist/aos.css' 6 | import { useEffect } from 'react'; 7 | // Banner :hankey: 8 | const Banner = () => { 9 | useEffect(() => { 10 | AOS.init( 11 | { duration: 2000 }, 12 | { offset: 300 } 13 | ); 14 | }, []); 15 | return ( 16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | 24 | {/* text */} 25 |
26 |

27 | 28 | {moment().format('MMMM, Do YYYY')} 29 |

30 |

Events,meetups

31 |

& conferences

32 |
33 |
34 | 35 |

500 Seat

36 |
37 |
38 | 39 |

10 Speaker

40 |
41 |
42 |
43 | 44 | 1356 Broadway, New York 45 |
46 |
47 | 48 | 49 |
50 |
51 | 52 | 53 |
54 |
55 |
56 |
57 |
58 |
59 | ); 60 | }; 61 | 62 | export default Banner; -------------------------------------------------------------------------------- /src/components/Footer/Footer.jsx: -------------------------------------------------------------------------------- 1 | import logo from '../../assets/logo (1).png'; 2 | import AOS from 'aos'; 3 | import 'aos/dist/aos.css'; 4 | import { useEffect } from 'react'; 5 | 6 | const Footer = () => { 7 | useEffect(() => { 8 | AOS.init( 9 | { duration: 2000 }, 10 | {offset:300} 11 | ) 12 | },[]) 13 | return ( 14 |
15 | 95 |
96 | ); 97 | }; 98 | 99 | export default Footer; -------------------------------------------------------------------------------- /src/components/Login/Login.jsx: -------------------------------------------------------------------------------- 1 | import React, { useContext, useState } from 'react'; 2 | import { NavLink, useLocation, useNavigate } from 'react-router-dom'; 3 | import { FirebaseContext } from '../../Context/AuthContext'; 4 | import Swal from 'sweetalert2' 5 | // Login jsx 6 | const Login = () => { 7 | const [error, setError] = useState(''); 8 | const location = useLocation(); 9 | const navigate = useNavigate(); 10 | console.log(location); 11 | const { googleSignUp,signIn } = useContext(FirebaseContext); 12 | // google 13 | const handleGoogle = () => { 14 | googleSignUp() 15 | .then(res => { 16 | console.log(res.user); 17 | Swal.fire({ 18 | title: 'Congratulation!', 19 | text: 'You are Sign up successfully', 20 | icon: 'success', 21 | confirmButtonText: 'Well-done' 22 | }) 23 | }) 24 | .catch(error => { 25 | console.log(error); 26 | 27 | Swal.fire({ 28 | title: 'Error!', 29 | text: 'Do you want to continue', 30 | icon: 'error', 31 | confirmButtonText: 'Cool' 32 | }) 33 | }) 34 | } 35 | 36 | const handleSubmit = (e) => { 37 | e.preventDefault() 38 | const email = e.target.email.value; 39 | const password = e.target.password.value; 40 | 41 | e.target.reset() 42 | setError('') 43 | console.log(email, password, ); 44 | 45 | 46 | 47 | // sign in 48 | signIn(email,password) 49 | .then(res => { 50 | console.log(res.user); 51 | Swal.fire({ 52 | title: 'Congratulation!', 53 | text: 'You are Log in successfully', 54 | icon: 'success', 55 | confirmButtonText: 'Well-done' 56 | }) 57 | navigate(location?.state? location?.state:'/') 58 | 59 | }) 60 | .catch(error => { 61 | console.error(error.message); 62 | setError(error.message) 63 | Swal.fire({ 64 | icon: 'error', 65 | title: 'Oops...', 66 | text: 'Something went wrong!', 67 | 68 | }) 69 | }) 70 | } 71 | return ( 72 |
73 |
74 |

Login

75 | { 76 | error &&

{error }

77 | } 78 |
79 |
80 | 81 | 82 |
83 |
84 | 85 | 86 |
87 | Forgot Password? 88 |
89 |
90 | 91 |
92 |
93 |
94 |

Login with social accounts

95 |
96 |
97 |
98 | 103 | 108 | 113 |
114 |

Don't have an account? 115 | Sign up 116 |

117 |
118 |
119 | ); 120 | }; 121 | 122 | export default Login; -------------------------------------------------------------------------------- /src/components/Navbar/Navbar.jsx: -------------------------------------------------------------------------------- 1 | import React, { useContext, useState } from 'react'; 2 | import { FirebaseContext } from '../../Context/AuthContext'; 3 | import logo from '../../assets/logo (1).png'; 4 | import { NavLink } from 'react-router-dom'; 5 | import pImg from '../../assets/team6-02.jpg' 6 | 7 | // Navbar 8 | const Navbar = () => { 9 | const { user, LogOut } = useContext(FirebaseContext); 10 | console.log(user); 11 | const handleLogout = () => { 12 | LogOut() 13 | .then(() => { 14 | 15 | }) 16 | .catch((error => { 17 | console.error(error); 18 | })) 19 | } 20 | return ( 21 |
22 |
23 |
24 | 25 |
26 | 29 |
    30 |
  • Home
  • 31 |
  • About
  • 32 |
  • Blog
  • 33 |
  • Contact
  • 34 | 35 | 36 |
37 |
38 | 39 |
40 |
41 |
    42 |
  • Home
  • 43 |
  • About
  • 44 |
  • Blog
  • 45 |
  • Contact
  • 46 | 47 |
48 |
49 |
50 | 51 | { 52 | user?.email ?
53 | 58 |
    59 |
  • 60 | 61 | 62 |
  • 63 |
  • 64 | 67 | 68 |
  • 69 |
70 |
71 | : 72 | Login 73 | } 74 | 75 | 76 | 77 |
78 |
79 |
80 | ); 81 | }; 82 | 83 | export default Navbar; -------------------------------------------------------------------------------- /src/components/Price/Price.jsx: -------------------------------------------------------------------------------- 1 | import AOS from 'aos'; 2 | import 'aos/dist/aos.css'; 3 | import { useEffect } from 'react'; 4 | // Price 5 | 6 | const Price = () => { 7 | useEffect(() => { 8 | AOS.init( 9 | { duration: 2000 }, 10 | { offset: 300 }, 11 | ) 12 | }, []); 13 | return ( 14 |
15 |
16 |
17 |
18 |

Ticket Plan

19 |

GET SPONSOR TICKET

20 |
21 | 22 | 23 |
24 |
25 |
26 | 27 |
28 |
29 |

Silver

30 |

$ 31 | /100 32 |

33 |
34 |
35 |
36 |

Available Tickets

37 |

270 / 500

38 |
39 |
    40 |
  • 41 | 42 | 43 | 44 | Conference Ticket 45 |
  • 46 |
  • 47 | 48 | 49 | 50 | Free Certificate 51 |
  • 52 |
  • 53 | 54 | 55 | 56 | Free Lunch & Coffe 57 |
  • 58 |
59 | 60 |
61 |
62 |
63 |
64 |

Gold

65 |

$ 66 | /120 67 |

68 |
69 |
70 |
71 |

Available Tickets

72 |

300 / 500

73 |
74 |
    75 |
  • 76 | 77 | 78 | 79 | Conference Ticket 80 |
  • 81 |
  • 82 | 83 | 84 | 85 | Free Certificate 86 |
  • 87 |
  • 88 | 89 | 90 | 91 | Free Lunch & Coffe 92 |
  • 93 |
94 | 95 |
96 |
97 |
98 |
99 |

Platinum

100 |

$ 101 | /150 102 |

103 |
104 |
105 |
106 |

Available Tickets

107 |

250 / 500

108 |
109 |
    110 |
  • 111 | 112 | 113 | 114 | Conference Ticket 115 |
  • 116 |
  • 117 | 118 | 119 | 120 | Free Certificate 121 |
  • 122 |
  • 123 | 124 | 125 | 126 | Free Lunch & Coffe 127 |
  • 128 |
129 | 130 |
131 |
132 |
133 |
134 |
135 |
136 | ); 137 | }; 138 | 139 | export default Price; -------------------------------------------------------------------------------- /src/components/Service/Service.jsx: -------------------------------------------------------------------------------- 1 | import React, { useEffect } from 'react'; 2 | import { Link } from 'react-router-dom'; 3 | import AOS from 'aos'; 4 | import 'aos/dist/aos.css' 5 | 6 | const Service = ({ service }) => { 7 | 8 | // service 9 | const { id, name, image, price, description } = service; 10 | useEffect(() => { 11 | AOS.init( 12 | { duration: 2000 }, 13 | { offset: 300, } 14 | ); 15 | }, []); 16 | return ( 17 |
18 | 19 |
20 | 21 | product image 22 | 23 |
24 | 25 |
{ name.slice(0,30)}
26 |
27 |
28 | 31 | 34 | 37 | 40 | 43 | 5.0 44 |
45 |

{description.slice(0,100) }...

46 |
47 | { price} 48 | Show Details 49 |
50 |
51 |
52 | 53 |
54 | ); 55 | }; 56 | 57 | export default Service; -------------------------------------------------------------------------------- /src/components/Services/Services.jsx: -------------------------------------------------------------------------------- 1 | import React, { useEffect } from 'react'; 2 | import Service from '../Service/Service'; 3 | import AOS from 'aos'; 4 | import 'aos/dist/aos.css' 5 | 6 | const Services = ({ services }) => { 7 | useEffect(() => { 8 | AOS.init( 9 | { duration: 2000 }, 10 | { offset: 300, } 11 | ) 12 | },[]) 13 | return ( 14 |
15 |
16 |

Our Services

17 |

Conferences are more than just gatherings; they are vibrant hubs of knowledge exchange, innovation, and collaboration.

18 |
19 |
20 | { 21 | services.map(service => ) 22 | } 23 |
24 |
25 | ); 26 | }; 27 | 28 | export default Services; -------------------------------------------------------------------------------- /src/components/SignUp/SignUp.jsx: -------------------------------------------------------------------------------- 1 | import React, { useContext, useState } from 'react'; 2 | import { Link, useNavigate } from 'react-router-dom'; 3 | import { FirebaseContext } from '../../Context/AuthContext'; 4 | import Swal from 'sweetalert2' 5 | 6 | // SignUp 7 | const SignUp = () => { 8 | const [error, setError] = useState(''); 9 | const [passwordError, setPasswordError] = useState(''); 10 | const { googleSignUp, signUp, handleUpdateProfile } = useContext(FirebaseContext); 11 | const navigate = useNavigate(); 12 | //google 13 | const handleGoogle = () => { 14 | googleSignUp() 15 | .then(res => { 16 | console.log(res.user); 17 | Swal.fire({ 18 | title: 'Congratulation!', 19 | text: 'You are Sign up successfully', 20 | icon: 'success', 21 | confirmButtonText: 'Well-done' 22 | }) 23 | }) 24 | .catch(error => { 25 | console.log(error); 26 | 27 | Swal.fire({ 28 | title: 'Error!', 29 | text: 'Do you want to continue', 30 | icon: 'error', 31 | confirmButtonText: 'Cool' 32 | }) 33 | }) 34 | } 35 | //formSubmit 36 | const handleSubmit = (e) => { 37 | e.preventDefault() 38 | const email = e.target.email.value; 39 | const name = e.target.name.value; 40 | const password = e.target.password.value; 41 | const photo = e.target.photo.value; 42 | e.target.reset() 43 | console.log(email, name, password, photo); 44 | setError('') 45 | setPasswordError('') 46 | 47 | 48 | 49 | 50 | if (password.length < 6) { 51 | setError('Password should be at least 6 characters or longer') 52 | 53 | return; 54 | } 55 | 56 | 57 | if (!/[A-Z]/.test(password)) { 58 | setPasswordError('Your password should have at least one upper case characters and one special character.') 59 | return; 60 | } 61 | 62 | // creating a new user 63 | signUp(email, password) 64 | .then(res => { 65 | handleUpdateProfile(name, photo) 66 | .then(() => { 67 | console.log('update'); 68 | Swal.fire({ 69 | title: 'Congratulation!', 70 | text: 'You are Sign up successfully', 71 | icon: 'success', 72 | confirmButtonText: 'Well-done' 73 | }) 74 | navigate('/') 75 | 76 | }) 77 | }) 78 | .catch(error => { 79 | 80 | Swal.fire({ 81 | icon: 'error', 82 | title: 'Oops...', 83 | text: 'Something went wrong!', 84 | 85 | }) 86 | }) 87 | 88 | 89 | // signUp 90 | // signUp(email,password) 91 | // .then(res => { 92 | 93 | 94 | // updateProfile(name,photo) 95 | // .then(() => { 96 | // Swal.fire({ 97 | // title: 'Congratulation!', 98 | // text: 'You are Sign up successfully', 99 | // icon: 'success', 100 | // confirmButtonText: 'Well-done' 101 | // }) 102 | // }) 103 | // .catch((error) => { 104 | // Swal.fire({ 105 | // icon: 'error', 106 | // title: 'Oops...', 107 | // text: 'Something went wrong!', 108 | 109 | // }) 110 | // }); 111 | 112 | 113 | 114 | // }) 115 | 116 | } 117 | return ( 118 |
119 |
120 |

Sign up

121 | { 122 | error &&

{error }

123 | } 124 | { 125 | passwordError &&

{passwordError }

126 | } 127 |
128 |
129 | 130 | 131 |
132 |
133 | 134 | 135 |
136 |
137 | 138 | 139 |
140 |
141 | 142 | 143 |
144 | 147 |
148 |
149 | Already have an account ? 150 | Sign in 151 |
152 |
153 | 154 | OR 155 | 156 |
157 |
158 | 161 | 164 |
165 |
166 | 167 |
168 | ); 169 | }; 170 | 171 | export default SignUp; -------------------------------------------------------------------------------- /src/components/Team/Team.jsx: -------------------------------------------------------------------------------- 1 | import { useEffect } from 'react'; 2 | import tImg1 from '../../assets/Team-memeber-01.png'; 3 | import tImg2 from '../../assets/Team-memeber-2-.png' 4 | import tImg3 from '../../assets/team-3.jpeg'; 5 | import tImg4 from '../../assets/team4.jpeg'; 6 | import tImg5 from '../../assets/team5.jpeg'; 7 | import tImg6 from '../../assets/team6-02.jpg'; 8 | import AOS from 'aos'; 9 | import 'aos/dist/aos.css'; 10 | //Team 11 | 12 | const Team = () => { 13 | useEffect(() => { 14 | AOS.init( 15 | { duration: 2000 }, 16 | {offset:300} 17 | ) 18 | },[]) 19 | return ( 20 |
21 |
22 |
23 |

Speaker

24 |

TALENTED SPEAKER

25 |
26 |
27 | 28 |
29 |

Leroy Jenkins

30 |

Visual Designer

31 |
32 | 55 |
56 |
57 | 58 |
59 |

David Malan

60 |

Marketing

61 |
62 | 85 |
86 |
87 | 88 |
89 |

Mitchel Starc

90 |

Business Manager

91 |
92 | 115 |
116 |
117 | 118 |
119 |

Devon Conway

120 |

Motivational Speaker

121 |
122 | 145 |
146 |
147 | 148 |
149 |

Viral Kohli

150 |

Entrepreneur

151 |
152 | 175 |
176 |
177 | 178 |
179 |

Babar Azam

180 |

Thought Leader

181 |
182 | 205 |
206 |
207 |
208 |
209 |
210 | ); 211 | }; 212 | 213 | export default Team; -------------------------------------------------------------------------------- /src/firebase/firebase.config.js: -------------------------------------------------------------------------------- 1 | // Import the functions you need from the SDKs you need 2 | import { initializeApp } from "firebase/app"; 3 | import { getAuth } from "firebase/auth"; 4 | // TODO: Add SDKs for Firebase products that you want to use 5 | // https://firebase.google.com/docs/web/setup#available-libraries 6 | console.log(import.meta.env.VITE_APIKEY); 7 | // Your web app's Firebase configuration 8 | const firebaseConfig = { 9 | apiKey: import.meta.env.VITE_APIKEY, 10 | authDomain: import.meta.env.VITE_AUTHDOMAIN, 11 | projectId: import.meta.env.VITE_PROJECTID, 12 | storageBucket: import.meta.env.VITE_STORAGEBUCKET, 13 | messagingSenderId: import.meta.env.VITE_MESSAGINGSENDERID, 14 | appId: import.meta.env.VITE_APPID 15 | }; 16 | 17 | // Initialize Firebase 18 | const app = initializeApp(firebaseConfig); 19 | export const auth = getAuth(app); 20 | -------------------------------------------------------------------------------- /src/index.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&display=swap'); 2 | 3 | @tailwind base; 4 | @tailwind components; 5 | @tailwind utilities; 6 | 7 | body{ 8 | font-family: 'Poppins', sans-serif; 9 | } -------------------------------------------------------------------------------- /src/main.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom/client' 3 | import App from './App.jsx' 4 | import './index.css' 5 | import { RouterProvider } from 'react-router-dom' 6 | import { router } from './Routes/Router.jsx' 7 | import AuthContext from './Context/AuthContext.jsx' 8 | 9 | ReactDOM.createRoot(document.getElementById('root')).render( 10 | 11 | 12 | 13 | 14 | , 15 | ) 16 | -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | export default { 3 | content: [ 4 | "./index.html", 5 | "./src/**/*.{js,ts,jsx,tsx}", 6 | ], 7 | theme: { 8 | extend: {}, 9 | }, 10 | plugins: [require("daisyui")], 11 | } 12 | 13 | // Tailwind config -------------------------------------------------------------------------------- /vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [react()], 7 | }) 8 | // Vite config --------------------------------------------------------------------------------