From a2b8d34ce4d9a8d478c55cc90f1b9bc0ac38813f Mon Sep 17 00:00:00 2001 From: SurajOberoi15 Date: Tue, 13 Feb 2024 20:44:30 +0530 Subject: [PATCH] Added HomePage, Header, Footer and Darkmode --- car-ui-react/data/db.json | 43 ++++++++- car-ui-react/package-lock.json | 16 ++++ car-ui-react/package.json | 1 + car-ui-react/src/App.js | 19 ++-- car-ui-react/src/assets/images/10001.avif | Bin 0 -> 16878 bytes car-ui-react/src/assets/logo.png | Bin 0 -> 2343 bytes .../src/components/Elements/ProductCard.js | 85 +++++++++--------- car-ui-react/src/components/Layout/Footer.js | 25 ++++++ car-ui-react/src/components/Layout/Header.js | 40 +++++++++ .../Sections/Search.js} | 0 .../{.gitkeep => Utility/ScrollToTop.js} | 0 car-ui-react/src/components/index.js | 3 + car-ui-react/src/index.css | 13 +++ car-ui-react/src/index.js | 5 +- .../src/pages/Home/Components/Accordion.js | 25 ++++++ .../src/pages/Home/Components/Faqs.js | 37 ++++++++ .../pages/Home/Components/FeaturedProducts.js | 28 ++++++ .../src/pages/Home/Components/Hero.js | 16 ++++ .../src/pages/Home/Components/Testimonials.js | 61 +++++++++++++ car-ui-react/src/pages/Home/HomePage.js | 16 ++++ .../src/pages/Products/ProductsList.js | 7 +- car-ui-react/src/pages/index.js | 3 +- car-ui-react/src/reducers/.gitkeep | 0 car-ui-react/src/routes/.gitkeep | 0 car-ui-react/src/routes/AllRoutes.js | 4 +- car-ui-react/tailwind.config.js | 10 ++- 26 files changed, 394 insertions(+), 63 deletions(-) create mode 100644 car-ui-react/src/assets/images/10001.avif create mode 100644 car-ui-react/src/assets/logo.png create mode 100644 car-ui-react/src/components/Layout/Footer.js create mode 100644 car-ui-react/src/components/Layout/Header.js rename car-ui-react/src/{assets/.gitkeep => components/Sections/Search.js} (100%) rename car-ui-react/src/components/{.gitkeep => Utility/ScrollToTop.js} (100%) create mode 100644 car-ui-react/src/components/index.js create mode 100644 car-ui-react/src/pages/Home/Components/Accordion.js create mode 100644 car-ui-react/src/pages/Home/Components/Faqs.js create mode 100644 car-ui-react/src/pages/Home/Components/FeaturedProducts.js create mode 100644 car-ui-react/src/pages/Home/Components/Hero.js create mode 100644 car-ui-react/src/pages/Home/Components/Testimonials.js create mode 100644 car-ui-react/src/pages/Home/HomePage.js delete mode 100644 car-ui-react/src/reducers/.gitkeep delete mode 100644 car-ui-react/src/routes/.gitkeep diff --git a/car-ui-react/data/db.json b/car-ui-react/data/db.json index 348d132a..cbb96441 100644 --- a/car-ui-react/data/db.json +++ b/car-ui-react/data/db.json @@ -128,7 +128,48 @@ } ], "featured_products": [ - {} + { + "carId": 4371, + "brand": "Ford", + "model": "Contour", + "year": 1198, + "color": "Teal", + "mileage": 70.811136, + "price": 1500000, + "quantity": 100, + "tax": 1.4, + "timestamp": "2004-10-19 10: 23: 54", + "poster": "https://i.pinimg.com/736x/fa/be/08/fabe082d7ca96325961ddd6019583cb7--mystique-ford-contour.jpg", + "in_stock": true + }, + { + "carId": 4548, + "brand": "Mahindra", + "model": "XUV 700", + "year": 1950, + "color": "Black", + "mileage": 13.5465, + "price": 2000000, + "quantity": 200, + "tax": 1.4, + "timestamp": "2004-10-19 10: 23: 54", + "poster": "https://www.cartoq.com/wp-content/uploads/2021/09/XUV700-Dark-Knight-edition-featured.jpg", + "in_stock": true + }, + { + "carId": 1556, + "brand": "Mahindra", + "model": "Scorpio N", + "year": 1950, + "color": "Black", + "mileage": 13.5465, + "price": 15000000, + "quantity": 200, + "tax": 1.4, + "timestamp": "2004-10-19 10: 23: 54", + "poster": "https://static.autox.com/uploads/2022/06/Mahindra-Scorpio-N-exterior.png", + "in_stock": true + } ], "orders": [ {} diff --git a/car-ui-react/package-lock.json b/car-ui-react/package-lock.json index c2ada246..99f4f2b8 100644 --- a/car-ui-react/package-lock.json +++ b/car-ui-react/package-lock.json @@ -11,6 +11,7 @@ "@testing-library/jest-dom": "^5.17.0", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", + "bootstrap-icons": "^1.11.3", "react": "^18.2.0", "react-dom": "^18.2.0", "react-router-dom": "^6.22.0", @@ -6149,6 +6150,21 @@ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" }, + "node_modules/bootstrap-icons": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/bootstrap-icons/-/bootstrap-icons-1.11.3.tgz", + "integrity": "sha512-+3lpHrCw/it2/7lBL15VR0HEumaBss0+f/Lb6ZvHISn1mlK83jjFpooTLsMWbIjJMDjDjOExMsTxnXSIT4k4ww==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + } + ] + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", diff --git a/car-ui-react/package.json b/car-ui-react/package.json index d1739ae8..9edea169 100644 --- a/car-ui-react/package.json +++ b/car-ui-react/package.json @@ -6,6 +6,7 @@ "@testing-library/jest-dom": "^5.17.0", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", + "bootstrap-icons": "^1.11.3", "react": "^18.2.0", "react-dom": "^18.2.0", "react-router-dom": "^6.22.0", diff --git a/car-ui-react/src/App.js b/car-ui-react/src/App.js index 57276ab6..03291bec 100644 --- a/car-ui-react/src/App.js +++ b/car-ui-react/src/App.js @@ -1,17 +1,14 @@ -import './App.css'; -import { BrowserRouter as Router } from 'react-router-dom'; // Import BrowserRouter - -import { ProductsList } from './pages/Products/ProductsList'; -import {AllRoutes} from "./routes/AllRoutes"; +import { AllRoutes } from './routes/AllRoutes'; +import { Footer, Header } from './components'; function App() { return ( - -
- -
-
+
+
+ +
+
); } -export default App; +export default App; \ No newline at end of file diff --git a/car-ui-react/src/assets/images/10001.avif b/car-ui-react/src/assets/images/10001.avif new file mode 100644 index 0000000000000000000000000000000000000000..aa29b2f5b089faeeeae54096a5239ddbd09a86bb GIT binary patch literal 16878 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 literal 0 HcmV?d00001 diff --git a/car-ui-react/src/components/Elements/ProductCard.js b/car-ui-react/src/components/Elements/ProductCard.js index e0950013..2745c3ae 100644 --- a/car-ui-react/src/components/Elements/ProductCard.js +++ b/car-ui-react/src/components/Elements/ProductCard.js @@ -1,47 +1,48 @@ import React from 'react'; +import carPicture from "../../assets/images/10001.avif" - -export const ProductCard = ({product}) => { - const {carId, brand, model, year, color, mileage, price, quantity, tax, poster, in_stock} = product; - - return ( -
- - {/* Best Seller */} - +export const ProductCard = ({ product }) => { + if (!product) { + return null; // Or handle the case where product is undefined + } + const { carId, brand, model, year, color, mileage, price, quantity, tax, poster, in_stock } = product; + + return ( +
+ + {/* Best Seller */} +
- -
{brand} {model}
-
-

{color}

- -

- mileage: {mileage} -

-

- quantity: {quantity} -

-

- tax: {tax} -

- -
- {in_stock} - - - - -
- -

- - INR {price} - - {/* -

+ +
{brand} {model}
+
+

{color}

+ +

+ Year: {year} +

+

+ Mileage: {mileage} +

+

+ Quantity: {quantity} +

+

+ Tax: {tax} +

+ +
+ {in_stock} +
+ +

+ + INR {price} + + +

-
- ) -} \ No newline at end of file +
+ ); + }; \ No newline at end of file diff --git a/car-ui-react/src/components/Layout/Footer.js b/car-ui-react/src/components/Layout/Footer.js new file mode 100644 index 00000000..ed834278 --- /dev/null +++ b/car-ui-react/src/components/Layout/Footer.js @@ -0,0 +1,25 @@ +import { Link } from "react-router-dom"; + +export const Footer = () => { + return ( +
+
+ © 2023 NashTechAutoMarket. All Rights Reserved. +
+ + + Instagram page + + + + Twitter page + + + + GitHub account + +
+
+
+ ) +} \ No newline at end of file diff --git a/car-ui-react/src/components/Layout/Header.js b/car-ui-react/src/components/Layout/Header.js new file mode 100644 index 00000000..ff8b1012 --- /dev/null +++ b/car-ui-react/src/components/Layout/Header.js @@ -0,0 +1,40 @@ +import { useEffect, useState } from "react"; +import { Link } from "react-router-dom"; +import Logo from "../../assets/logo.png"; + +export const Header = () => { + const [darkMode, setDarkMode] = useState(JSON.parse(localStorage.getItem("darkMode")) || false); + + useEffect(() => { + localStorage.setItem("darkMode", JSON.stringify(darkMode)); + + if(darkMode){ + document.documentElement.classList.add("dark"); + } else { + document.documentElement.classList.remove("dark"); + } + }, [darkMode]); + + return ( +
+ +
+ ) +} \ No newline at end of file diff --git a/car-ui-react/src/assets/.gitkeep b/car-ui-react/src/components/Sections/Search.js similarity index 100% rename from car-ui-react/src/assets/.gitkeep rename to car-ui-react/src/components/Sections/Search.js diff --git a/car-ui-react/src/components/.gitkeep b/car-ui-react/src/components/Utility/ScrollToTop.js similarity index 100% rename from car-ui-react/src/components/.gitkeep rename to car-ui-react/src/components/Utility/ScrollToTop.js diff --git a/car-ui-react/src/components/index.js b/car-ui-react/src/components/index.js new file mode 100644 index 00000000..a9e1ca89 --- /dev/null +++ b/car-ui-react/src/components/index.js @@ -0,0 +1,3 @@ +export { Header } from "./Layout/Header" +export { Footer } from "./Layout/Footer" +export { ProductCard } from "./Elements/ProductCard" \ No newline at end of file diff --git a/car-ui-react/src/index.css b/car-ui-react/src/index.css index b5c61c95..14c7f99d 100644 --- a/car-ui-react/src/index.css +++ b/car-ui-react/src/index.css @@ -1,3 +1,16 @@ @tailwind base; @tailwind components; @tailwind utilities; +@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap'); +@import url("https://cdn.jsdelivr.net/npm/bootstrap-icons@1.9.1/font/bootstrap-icons.css"); + +* { + font-family: 'Roboto', sans-serif; +} + +main { + min-height: 90vh; + max-width: 1280px; + margin: auto; + padding: 15px; +} \ No newline at end of file diff --git a/car-ui-react/src/index.js b/car-ui-react/src/index.js index 7716fe4c..79884b16 100644 --- a/car-ui-react/src/index.js +++ b/car-ui-react/src/index.js @@ -1,12 +1,15 @@ import React from 'react'; import ReactDOM from 'react-dom/client'; +import { BrowserRouter as Router } from 'react-router-dom'; import './index.css'; import App from './App'; const root = ReactDOM.createRoot(document.getElementById('root')); root.render( - + + + ); diff --git a/car-ui-react/src/pages/Home/Components/Accordion.js b/car-ui-react/src/pages/Home/Components/Accordion.js new file mode 100644 index 00000000..86f9d8a4 --- /dev/null +++ b/car-ui-react/src/pages/Home/Components/Accordion.js @@ -0,0 +1,25 @@ +import { useState } from "react"; + +export const Accordion = ({faq}) => { + const {question, answer} = faq; + const [show, setShow] = useState(false); + + return ( +
+

+ +

+ { show && ( +
+
+

{answer}

+
+
+ ) } +
+ ) +} \ No newline at end of file diff --git a/car-ui-react/src/pages/Home/Components/Faqs.js b/car-ui-react/src/pages/Home/Components/Faqs.js new file mode 100644 index 00000000..60c661a4 --- /dev/null +++ b/car-ui-react/src/pages/Home/Components/Faqs.js @@ -0,0 +1,37 @@ +import { Accordion } from "./Accordion"; + +export const Faq = () => { + const faqs = [ + { + "id": 1, + "question": "Why should I use NashtechAutoMarket?", + "answer": "Lorem ipsum, dolor sit amet consectetur adipisicing elit. Repellendus earum dicta nesciunt, nulla alias consequuntur cumque incidunt saepe mollitia esse! Magni praesentium delectus excepturi nostrum illo repellendus cum eius neque, aperiam dolores quaerat quis dolore magnam doloremque minus sint nemo qui necessitatibus at. Perspiciatis, corrupti cum labore quos odio porro!" + }, + { + "id": 2, + "question": "Can I access my orders ?", + "answer": "Lorem ipsum dolor sit amet consectetur adipisicing elit. At accusamus nobis tempore perferendis qui, quam, atque reprehenderit vero quaerat, assumenda pariatur eveniet. Maxime eaque, neque corrupti ad minus repudiandae consectetur!" + }, + { + "id": 3, + "question": "Do you offer refunds?", + "answer": "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Esse iste dolor deserunt expedita quam fugit et inventore amet pariatur. Animi." + }, + { + "id": 4, + "question": "Do you support Internation payments?", + "answer": "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Esse iste dolor deserunt expedita quam fugit et inventore amet pariatur. Animi." + } + ]; + + return ( +
+

Question in mind?

+
+ { faqs.map((faq) => ( + + )) } +
+
+ ) +} \ No newline at end of file diff --git a/car-ui-react/src/pages/Home/Components/FeaturedProducts.js b/car-ui-react/src/pages/Home/Components/FeaturedProducts.js new file mode 100644 index 00000000..409269c2 --- /dev/null +++ b/car-ui-react/src/pages/Home/Components/FeaturedProducts.js @@ -0,0 +1,28 @@ +import { useEffect, useState } from "react"; +import { ProductCard } from "../../../components"; + +export const FeaturedProducts = () => { + const [products, setProducts] = useState([]); + + useEffect(() => { + async function fetchProducts(){ + const response = await fetch("http://localhost:8000/featured_products"); + const data = await response.json() + setProducts(data); + } + fetchProducts(); + }, []) + + return ( +
+

Best Car Brands

+
+ + { products.map((product) => ( + + )) } + +
+
+ ) +} \ No newline at end of file diff --git a/car-ui-react/src/pages/Home/Components/Hero.js b/car-ui-react/src/pages/Home/Components/Hero.js new file mode 100644 index 00000000..da9ca04c --- /dev/null +++ b/car-ui-react/src/pages/Home/Components/Hero.js @@ -0,0 +1,16 @@ +import { Link } from "react-router-dom" + +export const Hero = () => { + return ( +
+
+

The Ultimate Store For Buying Cars

+

NashtechAutoMarket is the world's most popular and authoritative source for cards froms various brands. Find ratings and access to the newest cars digitally.

+ Explore Cars +
+
+ NashtechAutoMarket Hero Section +
+
+ ) +} \ No newline at end of file diff --git a/car-ui-react/src/pages/Home/Components/Testimonials.js b/car-ui-react/src/pages/Home/Components/Testimonials.js new file mode 100644 index 00000000..7621acd0 --- /dev/null +++ b/car-ui-react/src/pages/Home/Components/Testimonials.js @@ -0,0 +1,61 @@ +export const Testimonials = () => { + return ( +
+

Customers About NashtechAutoMarket

+
+
+
+

Very easy this was to navigate

+

If you care for your time, I hands down would go with this."

+
+
+ user +
+
Bonnie Green
+
From at US
+
+
+
+
+
+

Accurate information for any car

+

Great Website

+
+
+ user +
+
Roberta Casas
+
From UK
+
+
+
+
+
+

Huge Inventory

+

Aesthetically, the well designed components are beautiful and will undoubtedly level up your next purchase."

+
+
+ user +
+
Jese Leos
+
From India
+
+
+
+
+
+

Easy to navigate

+

You have many examples that can be used to create a fast prototype for your team."

+
+
+ user +
+
Joseph McFall
+
From Australia
+
+
+
+
+
+ ) + } \ No newline at end of file diff --git a/car-ui-react/src/pages/Home/HomePage.js b/car-ui-react/src/pages/Home/HomePage.js new file mode 100644 index 00000000..d3b221a4 --- /dev/null +++ b/car-ui-react/src/pages/Home/HomePage.js @@ -0,0 +1,16 @@ +import { Hero } from "./Components/Hero" +import { FeaturedProducts } from "./Components/FeaturedProducts" +import { Testimonials} from "./Components/Testimonials" +import { Faq } from "./Components/Faqs" + + +export const HomePage = () => { + return ( +
+ + + + +
+ ) + } \ No newline at end of file diff --git a/car-ui-react/src/pages/Products/ProductsList.js b/car-ui-react/src/pages/Products/ProductsList.js index c84abcad..233a77f5 100644 --- a/car-ui-react/src/pages/Products/ProductsList.js +++ b/car-ui-react/src/pages/Products/ProductsList.js @@ -1,7 +1,8 @@ import { useEffect, useState } from "react"; -import { ProductCard } from "../../components/Elements/ProductCard"; +import { ProductCard } from "../../components"; import {Link} from "react-router-dom"; + export const ProductsList = () => { const [products, setProducts] = useState([]); @@ -18,11 +19,11 @@ export const ProductsList = () => {
{/*

Available Cars

*/} - + {/* 0 - + */}
All Cars (10) diff --git a/car-ui-react/src/pages/index.js b/car-ui-react/src/pages/index.js index 904d4753..70b29705 100644 --- a/car-ui-react/src/pages/index.js +++ b/car-ui-react/src/pages/index.js @@ -1,2 +1,3 @@ export { DashboardPage } from "./Dashboard/DashboardPage"; -export { CartPage } from "./Cart/CartPage"; \ No newline at end of file +export { CartPage } from "./Cart/CartPage"; +export { HomePage } from "./Home/HomePage"; diff --git a/car-ui-react/src/reducers/.gitkeep b/car-ui-react/src/reducers/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/car-ui-react/src/routes/.gitkeep b/car-ui-react/src/routes/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/car-ui-react/src/routes/AllRoutes.js b/car-ui-react/src/routes/AllRoutes.js index 6319ee5b..ab3ce671 100644 --- a/car-ui-react/src/routes/AllRoutes.js +++ b/car-ui-react/src/routes/AllRoutes.js @@ -1,11 +1,13 @@ import { Routes, Route } from "react-router-dom"; import { CartPage } from "../pages"; -import {ProductsList} from "../pages/Products/ProductsList"; +import { ProductsList} from "../pages/Products/ProductsList"; +import { HomePage } from "../pages/Home/HomePage"; export const AllRoutes = () => { return ( <> + } /> } /> } /> diff --git a/car-ui-react/tailwind.config.js b/car-ui-react/tailwind.config.js index c0958ec4..52ca7d81 100644 --- a/car-ui-react/tailwind.config.js +++ b/car-ui-react/tailwind.config.js @@ -1,10 +1,14 @@ /** @type {import('tailwindcss').Config} */ module.exports = { content: [ - "./src/**/*.{js,jsx,ts,tsx}", - ], + "./src/**/*.{js,jsx,ts,tsx}"], + darkMode: 'class', theme: { - extend: {}, + extend: { + colors: { + dark: "#1E293B", + } + }, }, plugins: [], }