From f729ccbd08c409a026fa5183aeb861b548676db6 Mon Sep 17 00:00:00 2001
From: "ALMAZROUEI Shamma (2021) WKIS203"
 <shamma.almazrouei.2021@live.rhul.ac.uk>
Date: Tue, 11 Mar 2025 19:32:04 +0530
Subject: [PATCH] Build menu page

---
 golden-crust-bakery/index.html            |   2 +-
 golden-crust-bakery/public/favicon.ico    | Bin 0 -> 15406 bytes
 golden-crust-bakery/src/index.css         |   7 +-
 golden-crust-bakery/src/lib/data.js       |  48 ++++---
 golden-crust-bakery/src/main.jsx          |   5 +
 golden-crust-bakery/src/pages/About.jsx   |   6 +-
 golden-crust-bakery/src/pages/Landing.jsx |  14 +-
 golden-crust-bakery/src/pages/Menu.jsx    | 148 ++++++++++++++++++++++
 8 files changed, 201 insertions(+), 29 deletions(-)
 create mode 100644 golden-crust-bakery/public/favicon.ico
 create mode 100644 golden-crust-bakery/src/pages/Menu.jsx

diff --git a/golden-crust-bakery/index.html b/golden-crust-bakery/index.html
index c1e0ed6..1b1a6cc 100644
--- a/golden-crust-bakery/index.html
+++ b/golden-crust-bakery/index.html
@@ -2,7 +2,7 @@
 <html lang="en">
   <head>
     <meta charset="UTF-8" />
-    <link rel="icon" type="image/svg+xml" href="/vite.svg" />
+    <link rel="icon" type="image/svg+xml" href="/favicon.ico" />
 
     <link rel="preconnect" href="https://fonts.googleapis.com" />
     <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
diff --git a/golden-crust-bakery/public/favicon.ico b/golden-crust-bakery/public/favicon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..8aae0ed8413fb8d595c49f7d931694502f2b9f36
GIT binary patch
literal 15406
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

literal 0
HcmV?d00001

diff --git a/golden-crust-bakery/src/index.css b/golden-crust-bakery/src/index.css
index 80ea3b7..901127c 100644
--- a/golden-crust-bakery/src/index.css
+++ b/golden-crust-bakery/src/index.css
@@ -1,6 +1,7 @@
 @tailwind base;
 @tailwind components;
 @tailwind utilities;
+
 @layer base {
   :root {
     --background: 0 0% 100%;
@@ -27,8 +28,9 @@
     --chart-3: 197 37% 24%;
     --chart-4: 43 74% 66%;
     --chart-5: 27 87% 67%;
-    --radius: 0.5rem
+    --radius: 0.5rem;
   }
+
   .dark {
     --background: 224 71.4% 4.1%;
     --foreground: 210 20% 98%;
@@ -53,9 +55,10 @@
     --chart-2: 160 60% 45%;
     --chart-3: 30 80% 55%;
     --chart-4: 280 65% 60%;
-    --chart-5: 340 75% 55%
+    --chart-5: 340 75% 55%;
   }
 }
+
 @layer base {
   * {
     @apply border-border;
diff --git a/golden-crust-bakery/src/lib/data.js b/golden-crust-bakery/src/lib/data.js
index 4929e52..0b91f88 100644
--- a/golden-crust-bakery/src/lib/data.js
+++ b/golden-crust-bakery/src/lib/data.js
@@ -6,7 +6,8 @@ export const cakeData = [
       'Fresh strawberries on a vanilla base with cream cheese frosting. Perfect for summer celebrations.',
     price: 32.99,
     category: 'Birthday',
-    image: '/placeholder.svg?height=300&width=300',
+    image:
+      'https://www.flurys.com/cdn/shop/products/StrawberryCake_2.jpg?v=1676363157&width=1280',
   },
   {
     id: 2,
@@ -15,7 +16,8 @@ export const cakeData = [
       "Rich chocolate cake with ganache and chocolate shavings. A chocolate lover's paradise.",
     price: 34.99,
     category: 'Birthday',
-    image: '/placeholder.svg?height=300&width=300',
+    image:
+      'https://www.flurys.com/cdn/shop/products/ChocolateCake_1.jpg?v=1676363155&width=1280',
   },
   {
     id: 3,
@@ -24,7 +26,8 @@ export const cakeData = [
       'Zesty lemon cake with lemon curd and buttercream. Bright and refreshing for any occasion.',
     price: 29.99,
     category: 'Special Occasion',
-    image: '/placeholder.svg?height=300&width=300',
+    image:
+      'https://charlotteslivelykitchen.com/wp-content/uploads/2019/05/lemon-cake-2.jpg',
   },
   {
     id: 4,
@@ -33,7 +36,8 @@ export const cakeData = [
       'Classic red velvet cake with cream cheese frosting. Elegant and timeless.',
     price: 36.99,
     category: 'Wedding',
-    image: '/placeholder.svg?height=300&width=300',
+    image:
+      'https://www.flurys.com/cdn/shop/products/RedVelvetCake_1.jpg?v=1676363275&width=1280',
   },
   {
     id: 5,
@@ -42,7 +46,8 @@ export const cakeData = [
       'Premium vanilla bean cake with vanilla buttercream. Simple yet sophisticated.',
     price: 28.99,
     category: 'Birthday',
-    image: '/placeholder.svg?height=300&width=300',
+    image:
+      'https://www.fnp.com/images/pr/l/v20221130174940/vanilla-buttercream-cake-half-kg_1.jpg',
   },
   {
     id: 6,
@@ -51,7 +56,8 @@ export const cakeData = [
       'Moist carrot cake with walnuts and cream cheese frosting. A beloved classic.',
     price: 31.99,
     category: 'Special Occasion',
-    image: '/placeholder.svg?height=300&width=300',
+    image:
+      'https://i0.wp.com/baketotheroots.de/wp-content/uploads/2024/03/SQ_240320_Baked-Carrot-Cake-Cheesecake.jpg?fit=1200%2C1200&ssl=1',
   },
   {
     id: 7,
@@ -60,7 +66,8 @@ export const cakeData = [
       'Coffee-soaked layers with mascarpone cream and cocoa. An Italian favorite.',
     price: 38.99,
     category: 'Special Occasion',
-    image: '/placeholder.svg?height=300&width=300',
+    image:
+      'https://simshomekitchen.com/wp-content/uploads/2023/08/Tiramisu-birthday-cake-recipe.jpg',
   },
   {
     id: 8,
@@ -69,7 +76,8 @@ export const cakeData = [
       'Three-tier white cake with delicate floral decorations. Perfect for your special day.',
     price: 149.99,
     category: 'Wedding',
-    image: '/placeholder.svg?height=300&width=300',
+    image:
+      'https://www.warmoven.in/blog/wp-content/uploads/2024/07/Buttercream-Beauty.png',
   },
   {
     id: 9,
@@ -78,7 +86,8 @@ export const cakeData = [
       'Warm pumpkin cake with cinnamon cream cheese frosting. Ideal for fall celebrations.',
     price: 33.99,
     category: 'Seasonal',
-    image: '/placeholder.svg?height=300&width=300',
+    image:
+      'https://chelsweets.com/wp-content/uploads/2018/10/cropped-pumpkin-cake-with-leaves.jpg',
   },
   {
     id: 10,
@@ -87,7 +96,8 @@ export const cakeData = [
       'Chocolate cake with mint buttercream and chocolate chips. Refreshingly delicious.',
     price: 35.99,
     category: 'Birthday',
-    image: '/placeholder.svg?height=300&width=300',
+    image:
+      'https://livforcake.com/wp-content/uploads/2017/05/mint-chocolate-chip-cake-3.jpg',
   },
   {
     id: 11,
@@ -96,7 +106,8 @@ export const cakeData = [
       'Coconut cake with coconut cream and toasted coconut flakes. A tropical treat.',
     price: 32.99,
     category: 'Special Occasion',
-    image: '/placeholder.svg?height=300&width=300',
+    image:
+      'https://www.allrecipes.com/thmb/1LRCshuWcZJtOLg51z3r93RX4H8=/1500x0/filters:no_upscale():max_bytes(150000):strip_icc()/6698942-old-fashioned-coconut-cake-Kim-4x3-1-6b2b8ed757ac4b3884e773a1452e66b1.jpg',
   },
   {
     id: 12,
@@ -105,7 +116,8 @@ export const cakeData = [
       'Chocolate cake with cherries and whipped cream. A German classic.',
     price: 37.99,
     category: 'Birthday',
-    image: '/placeholder.svg?height=300&width=300',
+    image:
+      'https://ichef.bbci.co.uk/food/ic/food_16x9_1600/recipes/black_forest_gateau_43895_16x9.jpg',
   },
   {
     id: 13,
@@ -114,7 +126,8 @@ export const cakeData = [
       'Spiced cake with cinnamon, nutmeg, and cloves. Perfect for winter holidays.',
     price: 34.99,
     category: 'Seasonal',
-    image: '/placeholder.svg?height=300&width=300',
+    image:
+      'https://zimmysnook.ca/wp-content/uploads/2024/01/IMG_8538_jpg-2-e1706408096718.jpg',
   },
   {
     id: 14,
@@ -123,7 +136,8 @@ export const cakeData = [
       'White cake with raspberry filling and white chocolate buttercream. Delicate and delicious.',
     price: 36.99,
     category: 'Wedding',
-    image: '/placeholder.svg?height=300&width=300',
+    image:
+      'https://assets-eu-01.kc-usercontent.com/559bb7d3-88a4-01c1-79a3-dd4d5b2d2bb0/8e846b3a-7973-4604-9913-f2edd322c701/Chocolate-Raspberry-Cake-SQUARE-2.jpg',
   },
   {
     id: 15,
@@ -132,7 +146,8 @@ export const cakeData = [
       'Vanilla cake with caramel filling and salted caramel drizzle. Sweet with a touch of salt.',
     price: 33.99,
     category: 'Birthday',
-    image: '/placeholder.svg?height=300&width=300',
+    image:
+      'https://www.supergoldenbakes.com/wordpress/wp-content/uploads/2023/05/Mary_Berry_Salted_Caramel_Cake-1.jpg',
   },
   {
     id: 16,
@@ -141,6 +156,7 @@ export const cakeData = [
       'Light lemon cake with floral decorations. A celebration of spring.',
     price: 35.99,
     category: 'Seasonal',
-    image: '/placeholder.svg?height=300&width=300',
+    image:
+      'https://cdn11.bigcommerce.com/s-vm6doh2w4n/images/stencil/original/products/7183/18736/muf056gd8e3szbpyf098__55091.1728509796.jpg?c=1',
   },
 ];
diff --git a/golden-crust-bakery/src/main.jsx b/golden-crust-bakery/src/main.jsx
index 42b3ab9..d41fb02 100644
--- a/golden-crust-bakery/src/main.jsx
+++ b/golden-crust-bakery/src/main.jsx
@@ -13,6 +13,7 @@ import About from './pages/About';
 import Contact from './pages/Contact';
 import Login from './pages/Login';
 import Register from './pages/Register';
+import Menu from './pages/Menu';
 
 const router = createBrowserRouter([
   {
@@ -39,6 +40,10 @@ const router = createBrowserRouter([
         path: '/register',
         element: <Register />,
       },
+      {
+        path: '/menu',
+        element: <Menu />,
+      },
     ],
   },
 ]);
diff --git a/golden-crust-bakery/src/pages/About.jsx b/golden-crust-bakery/src/pages/About.jsx
index 4763221..033a62f 100644
--- a/golden-crust-bakery/src/pages/About.jsx
+++ b/golden-crust-bakery/src/pages/About.jsx
@@ -9,19 +9,19 @@ export default function About() {
   const reviews = [
     {
       name: 'Sophia Patel',
-      img: 'https://img.freepik.com/free-psd/3d-illustration-person-with-long-hair_23-2149436197.jpg?t=st=1741676033~exp=1741679633~hmac=d35bb3732ce662b10cc27aeeeb8f7055efc62b78e3642aa24f1beae0accddd45&w=1480',
+      img: 'https://avatar.iran.liara.run/public/94',
       comment:
         'The cake was absolutely delicious and beautifully decorated. Everyone at the party loved it! Will definitely order again.',
     },
     {
       name: 'Liam Johnson',
-      img: 'https://img.freepik.com/free-psd/3d-illustration-person-with-sunglasses_23-2149436188.jpg?t=st=1741676063~exp=1741679663~hmac=2ea273721392950d9ee9cca8ae25fe80bd6d78d33c5ad6d6189cb20dd8f7f5be&w=1480',
+      img: 'https://avatar.iran.liara.run/public/25',
       comment:
         'Amazing taste and perfect texture! The custom design was exactly as I imagined. Highly recommended!',
     },
     {
       name: 'Emma Williams',
-      img: 'https://img.freepik.com/free-psd/3d-illustration-person-with-rainbow-sunglasses_23-2149436181.jpg?t=st=1741676083~exp=1741679683~hmac=f3c74b0465c88d8090fc9fd8d54f8d0fbdf0c7ba00140199a6df67c79493ead0&w=1480',
+      img: 'https://avatar.iran.liara.run/public/91',
       comment:
         "Fresh, flavorful, and elegantly crafted. It was the highlight of our celebration. Can't wait to try another one!",
     },
diff --git a/golden-crust-bakery/src/pages/Landing.jsx b/golden-crust-bakery/src/pages/Landing.jsx
index ed3ce8f..ccb5c86 100644
--- a/golden-crust-bakery/src/pages/Landing.jsx
+++ b/golden-crust-bakery/src/pages/Landing.jsx
@@ -24,7 +24,7 @@ export default function Landing() {
         'Fresh strawberries on a vanilla base with cream cheese frosting',
       price: 32.99,
       image:
-        'https://img.freepik.com/free-photo/layered-strawberry-vanilla-cake_1268-30137.jpg?t=st=1741675243~exp=1741678843~hmac=18ff6c24294bea6279aaa5b098c4a57da2db82fe33382670a5d1b416bcdf4542&w=1800',
+        'https://www.flurys.com/cdn/shop/products/StrawberryCake_2.jpg?v=1676363157&width=1280',
     },
     {
       id: 2,
@@ -32,7 +32,7 @@ export default function Landing() {
       description: 'Rich chocolate cake with ganache and chocolate shavings',
       price: 34.99,
       image:
-        'https://img.freepik.com/free-photo/front-view-sweet-chocolate-cake_23-2148834059.jpg?t=st=1741675403~exp=1741679003~hmac=2b7bf4f657915b4b0db2b724abf1b841c8144d28605691ec47b8113a76033fc2&w=1800',
+        'https://www.flurys.com/cdn/shop/products/ChocolateCake_1.jpg?v=1676363155&width=840',
     },
     {
       id: 3,
@@ -40,26 +40,26 @@ export default function Landing() {
       description: 'Zesty lemon cake with lemon curd and buttercream',
       price: 29.99,
       image:
-        'https://img.freepik.com/free-photo/ai-generated-cake-picture_23-2150649358.jpg?t=st=1741675442~exp=1741679042~hmac=8110dd439d3217343e7ed54e128ce94fb8db9a53297529616caa4d2119f88751&w=1800',
+        'https://charlotteslivelykitchen.com/wp-content/uploads/2019/05/lemon-cake-2.jpg',
     },
   ];
 
   const reviews = [
     {
       name: 'Sophia Patel',
-      img: 'https://img.freepik.com/free-psd/3d-illustration-person-with-long-hair_23-2149436197.jpg?t=st=1741676033~exp=1741679633~hmac=d35bb3732ce662b10cc27aeeeb8f7055efc62b78e3642aa24f1beae0accddd45&w=1480',
+      img: 'https://avatar.iran.liara.run/public/94',
       comment:
         'The cake was absolutely delicious and beautifully decorated. Everyone at the party loved it! Will definitely order again.',
     },
     {
       name: 'Liam Johnson',
-      img: 'https://img.freepik.com/free-psd/3d-illustration-person-with-sunglasses_23-2149436188.jpg?t=st=1741676063~exp=1741679663~hmac=2ea273721392950d9ee9cca8ae25fe80bd6d78d33c5ad6d6189cb20dd8f7f5be&w=1480',
+      img: 'https://avatar.iran.liara.run/public/25',
       comment:
         'Amazing taste and perfect texture! The custom design was exactly as I imagined. Highly recommended!',
     },
     {
       name: 'Emma Williams',
-      img: 'https://img.freepik.com/free-psd/3d-illustration-person-with-rainbow-sunglasses_23-2149436181.jpg?t=st=1741676083~exp=1741679683~hmac=f3c74b0465c88d8090fc9fd8d54f8d0fbdf0c7ba00140199a6df67c79493ead0&w=1480',
+      img: 'https://avatar.iran.liara.run/public/91',
       comment:
         "Fresh, flavorful, and elegantly crafted. It was the highlight of our celebration. Can't wait to try another one!",
     },
@@ -99,7 +99,7 @@ export default function Landing() {
               </div>
               <div className='relative h-[300px] md:h-[400px] rounded-2xl overflow-hidden shadow-xl'>
                 <img
-                  src='https://img.freepik.com/free-photo/various-cakes-supermarket-shelves-sale_627829-7332.jpg?t=st=1741673875~exp=1741677475~hmac=833e703e6c8857b6c3348a3ce0e9217f1d18e10b83f1066781dfe84bf46f863a&w=2000'
+                  src='https://images.pexels.com/photos/2536967/pexels-photo-2536967.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2'
                   alt='Delicious cake showcase'
                   className='object-cover'
                 />
diff --git a/golden-crust-bakery/src/pages/Menu.jsx b/golden-crust-bakery/src/pages/Menu.jsx
new file mode 100644
index 0000000..3554c98
--- /dev/null
+++ b/golden-crust-bakery/src/pages/Menu.jsx
@@ -0,0 +1,148 @@
+import { useEffect, useState } from 'react';
+import { toast } from 'sonner';
+import { Search, ShoppingCart } from 'lucide-react';
+
+import { useCartStore } from '@/lib/store';
+import { cakeData } from '@/lib/data';
+
+import { Button } from '@/components/ui/button';
+import { Input } from '@/components/ui/input';
+
+export default function Menu() {
+  const { addToCart, initializeCart } = useCartStore();
+  const [searchTerm, setSearchTerm] = useState('');
+  const [categoryFilter, setCategoryFilter] = useState('All');
+
+  useEffect(() => {
+    initializeCart();
+  }, [initializeCart]);
+
+  const categories = [
+    'All',
+    'Birthday',
+    'Wedding',
+    'Special Occasion',
+    'Seasonal',
+  ];
+
+  const filteredCakes = cakeData.filter((cake) => {
+    const matchesSearch =
+      cake.name.toLowerCase().includes(searchTerm.toLowerCase()) ||
+      cake.description.toLowerCase().includes(searchTerm.toLowerCase());
+    const matchesCategory =
+      categoryFilter === 'All' || cake.category === categoryFilter;
+    return matchesSearch && matchesCategory;
+  });
+
+  const handleAddToCart = (cake) => {
+    addToCart({
+      ...cake,
+      quantity: 1,
+    });
+
+    toast({
+      title: 'Added to cart!',
+      description: `${cake.name} has been added to your cart.`,
+    });
+  };
+
+  return (
+    <div className='container mx-auto px-4 py-8 md:py-12'>
+      <div className='text-center mb-12'>
+        <h1 className='text-4xl font-bold text-gray-800 mb-4'>Our Cake Menu</h1>
+        <p className='text-gray-600 max-w-2xl mx-auto'>
+          Browse our selection of handcrafted cakes made with premium
+          ingredients and love
+        </p>
+      </div>
+
+      {/* Search and Filter */}
+      <div className='mb-8 flex flex-col md:flex-row gap-4 justify-between'>
+        <div className='relative w-full md:w-1/3'>
+          <Search className='absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400' />
+          <Input
+            type='text'
+            placeholder='Search cakes...'
+            value={searchTerm}
+            onChange={(e) => setSearchTerm(e.target.value)}
+            className='pl-10 rounded-full border-pink-200 focus:border-pink-400 focus:ring-pink-400'
+          />
+        </div>
+        <div className='flex flex-wrap gap-2'>
+          {categories.map((category) => (
+            <Button
+              key={category}
+              variant={categoryFilter === category ? 'default' : 'outline'}
+              onClick={() => setCategoryFilter(category)}
+              className={`rounded-full ${
+                categoryFilter === category
+                  ? 'bg-pink-500 hover:bg-pink-600 text-white'
+                  : 'border-pink-200 text-pink-600 hover:bg-pink-50'
+              }`}
+            >
+              {category}
+            </Button>
+          ))}
+        </div>
+      </div>
+
+      {/* Cake Grid */}
+      {filteredCakes.length > 0 ? (
+        <div className='grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6 md:gap-8 lg:gap-12'>
+          {filteredCakes.map((cake) => (
+            <div
+              key={cake.id}
+              className='bg-white rounded-xl shadow-sm border overflow-hidden transition-transform hover:scale-105 hover:shadow-lg'
+            >
+              <div className='relative h-56'>
+                <img
+                  src={cake.image}
+                  alt={cake.name}
+                  className='object-cover w-full h-full'
+                />
+                <div className='absolute top-2 right-2 bg-pink-100 text-pink-600 px-2 py-1 rounded-full text-xs font-medium'>
+                  {cake.category}
+                </div>
+              </div>
+              <div className='p-6'>
+                <div className='flex justify-between items-start mb-2'>
+                  <h3 className='text-xl font-semibold text-gray-800'>
+                    {cake.name}
+                  </h3>
+                  <p className='text-pink-600 font-bold'>
+                    ${cake.price.toFixed(2)}
+                  </p>
+                </div>
+                <p className='text-gray-600 mb-4 line-clamp-2'>
+                  {cake.description}
+                </p>
+                <Button
+                  onClick={() => handleAddToCart(cake)}
+                  className='w-full bg-yellow-100 hover:bg-yellow-200 text-yellow-800 rounded-full'
+                >
+                  <ShoppingCart className='mr-2 h-4 w-4' /> Add to Cart
+                </Button>
+              </div>
+            </div>
+          ))}
+        </div>
+      ) : (
+        <div className='text-center py-12'>
+          <h3 className='text-xl text-gray-600'>
+            No cakes found matching your search.
+          </h3>
+          <Button
+            onClick={() => {
+              setSearchTerm('');
+              setCategoryFilter('All');
+            }}
+            variant='outline'
+            className='mt-4 border-pink-300 text-pink-600 hover:bg-pink-50 rounded-full'
+          >
+            Clear Filters
+          </Button>
+        </div>
+      )}
+    </div>
+  );
+}
-- 
GitLab