diff --git a/donutshop_ecommerce/package-lock.json b/donutshop_ecommerce/package-lock.json index b2eadea..9e86627 100644 --- a/donutshop_ecommerce/package-lock.json +++ b/donutshop_ecommerce/package-lock.json @@ -12,6 +12,7 @@ "@aws-sdk/client-s3": "^3.576.0", "bcrypt": "^5.1.1", "framer-motion": "^11.1.8", + "gsap": "^3.12.5", "mongodb": "^6.6.1", "mongoose": "^8.3.4", "next": "14.2.3", @@ -4787,6 +4788,11 @@ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, + "node_modules/gsap": { + "version": "3.12.5", + "resolved": "https://registry.npmjs.org/gsap/-/gsap-3.12.5.tgz", + "integrity": "sha512-srBfnk4n+Oe/ZnMIOXt3gT605BX9x5+rh/prT2F1SsNJsU1XuMiP0E2aptW481OnonOGACZWBqseH5Z7csHxhQ==" + }, "node_modules/has-bigints": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", diff --git a/donutshop_ecommerce/package.json b/donutshop_ecommerce/package.json index c7003c8..c10905b 100644 --- a/donutshop_ecommerce/package.json +++ b/donutshop_ecommerce/package.json @@ -13,6 +13,7 @@ "@aws-sdk/client-s3": "^3.576.0", "bcrypt": "^5.1.1", "framer-motion": "^11.1.8", + "gsap": "^3.12.5", "mongodb": "^6.6.1", "mongoose": "^8.3.4", "next": "14.2.3", diff --git a/donutshop_ecommerce/public/donut-story.jpg b/donutshop_ecommerce/public/donut-story.jpg new file mode 100644 index 0000000..8e860aa Binary files /dev/null and b/donutshop_ecommerce/public/donut-story.jpg differ diff --git a/donutshop_ecommerce/public/story.jpg b/donutshop_ecommerce/public/story.jpg new file mode 100644 index 0000000..bfa01fb Binary files /dev/null and b/donutshop_ecommerce/public/story.jpg differ diff --git a/donutshop_ecommerce/src/app/about/page.js b/donutshop_ecommerce/src/app/about/page.js new file mode 100644 index 0000000..d966f58 --- /dev/null +++ b/donutshop_ecommerce/src/app/about/page.js @@ -0,0 +1,37 @@ +"use client" +import Image from 'next/image' +import React from 'react' + + +const AboutPage = () => { + + return ( + <> +
+

our story

+ home-hero +
+
+
+
+

Lorem ipsum dolor sit amet, consectetur adipiscing elit, ut labore et dolore magna aliqua.

+

Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat sed do eiusmod tempor incididunt.

+

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

+
+
+ +
+
+ +
+
+

Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat sed do eiusmod tempor incididunt.

+

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

+
+
+
+ + ) +} + +export default AboutPage \ No newline at end of file diff --git a/donutshop_ecommerce/src/app/cart/page.js b/donutshop_ecommerce/src/app/cart/page.js index c3203d7..c985a0a 100644 --- a/donutshop_ecommerce/src/app/cart/page.js +++ b/donutshop_ecommerce/src/app/cart/page.js @@ -81,7 +81,7 @@ const CartPage = () => {

Your cart is empty

)} {cartProducts?.length > 0 && cartProducts.map((product, index) => ( -
+
diff --git a/donutshop_ecommerce/src/app/categories/page.js b/donutshop_ecommerce/src/app/categories/page.js index 83724e7..0b963ad 100644 --- a/donutshop_ecommerce/src/app/categories/page.js +++ b/donutshop_ecommerce/src/app/categories/page.js @@ -109,7 +109,7 @@ const CategoriesPage = () => {
{categories?.length > 0 && categories.map(c => ( -
+

{c.name}

diff --git a/donutshop_ecommerce/src/app/globals.css b/donutshop_ecommerce/src/app/globals.css index dd2d5e6..7062a30 100644 --- a/donutshop_ecommerce/src/app/globals.css +++ b/donutshop_ecommerce/src/app/globals.css @@ -39,9 +39,6 @@ div.tabs > *{ div.tabs > *.active{ @apply bg-pink-500 text-white font-semibold } - - - /*=====Responsive=====*/ @media (min-width: 765px){ .letter { diff --git a/donutshop_ecommerce/src/app/layout.js b/donutshop_ecommerce/src/app/layout.js index cdd5652..4baf360 100644 --- a/donutshop_ecommerce/src/app/layout.js +++ b/donutshop_ecommerce/src/app/layout.js @@ -1,10 +1,17 @@ import { Inter } from "next/font/google"; +import { Creepster } from "next/font/google"; import "./globals.css"; import Header from "../components/layout/Header"; import AppProvider from "../components/AppContext"; import { Toaster } from "react-hot-toast"; const inter = Inter({ subsets: ["latin"] }); +const creepster = Creepster({ + subsets: ['latin'], + display: 'swap', + variable: '--font-creepster', + weight: '400', +}) export const metadata = { title: "Puffy Dough | Donuts, Coffee, and Drinks", @@ -15,7 +22,7 @@ export default function RootLayout({ children }) { return ( - +
diff --git a/donutshop_ecommerce/src/app/menu-items/page.js b/donutshop_ecommerce/src/app/menu-items/page.js index 98f0e46..cdcd894 100644 --- a/donutshop_ecommerce/src/app/menu-items/page.js +++ b/donutshop_ecommerce/src/app/menu-items/page.js @@ -37,7 +37,7 @@ const MenuItemsPage = () => {

Edit menu items

{menuItems?.length > 0 && menuItems.map(item => ( - +
menu-item-img
diff --git a/donutshop_ecommerce/src/app/menu/page.js b/donutshop_ecommerce/src/app/menu/page.js index 189e050..b7eceee 100644 --- a/donutshop_ecommerce/src/app/menu/page.js +++ b/donutshop_ecommerce/src/app/menu/page.js @@ -21,11 +21,11 @@ const MenuPage = () => { return (
{categories?.length > 0 && categories.map(c => ( -
+

{c.name}

{menuItems.filter(item => item.category === c._id).map(item => ( - + ))}
diff --git a/donutshop_ecommerce/src/app/orders/[id]/page.js b/donutshop_ecommerce/src/app/orders/[id]/page.js index 176638a..7a26cf0 100644 --- a/donutshop_ecommerce/src/app/orders/[id]/page.js +++ b/donutshop_ecommerce/src/app/orders/[id]/page.js @@ -58,7 +58,7 @@ const OrdersPage = () => {

Order Summary

{order.cartProducts.map(product => ( -
+

{product.itemName}

{product.size && ( @@ -66,7 +66,7 @@ const OrdersPage = () => { )} {product.extra?.length > 0 && (
Add: {product.extra.map(extras => ( - {extras.itemName} (+${extras.price}) + {extras.itemName} (+${extras.price}) ))}
)} diff --git a/donutshop_ecommerce/src/app/orders/page.js b/donutshop_ecommerce/src/app/orders/page.js index f2e9c7a..2c155ad 100644 --- a/donutshop_ecommerce/src/app/orders/page.js +++ b/donutshop_ecommerce/src/app/orders/page.js @@ -37,7 +37,7 @@ const OrderPage = () => {
{orders?.length > 0 && orders.map((order) => ( -
+
{order.userEmail}
diff --git a/donutshop_ecommerce/src/app/users/page.js b/donutshop_ecommerce/src/app/users/page.js index 720714d..8bbc351 100644 --- a/donutshop_ecommerce/src/app/users/page.js +++ b/donutshop_ecommerce/src/app/users/page.js @@ -32,7 +32,7 @@ const Userspage = () => {
{users?.length > 0 && users.map(user => ( -
+
{!!user.name && ( diff --git a/donutshop_ecommerce/src/components/layout/AddressInfo.js b/donutshop_ecommerce/src/components/layout/AddressInfo.js index b377497..3e31e72 100644 --- a/donutshop_ecommerce/src/components/layout/AddressInfo.js +++ b/donutshop_ecommerce/src/components/layout/AddressInfo.js @@ -7,29 +7,29 @@ const AddressInfo = ({addressProps, setAddressProps, disabled=false}) => { <>
- setAddressProps('phoneNumber', ev.target.value)} disabled={disabled} className=' disabled:bg-gray-100 disabled:text-gray-400'/> + setAddressProps('phoneNumber', ev.target.value)} disabled={disabled} className=' disabled:bg-gray-100 disabled:text-gray-400'/>
- setAddressProps('streetAddress', ev.target.value)} disabled={disabled} className=' disabled:bg-gray-100 disabled:text-gray-400'/> + setAddressProps('streetAddress', ev.target.value)} disabled={disabled} className=' disabled:bg-gray-100 disabled:text-gray-400'/>
- setAddressProps('city', ev.target.value)} disabled={disabled} className=' disabled:bg-gray-100 disabled:text-gray-400'/> + setAddressProps('city', ev.target.value)} disabled={disabled} className=' disabled:bg-gray-100 disabled:text-gray-400'/>
- setAddressProps('stateProvince', ev.target.value)} disabled={disabled} className=' disabled:bg-gray-100 disabled:text-gray-400'/> + setAddressProps('stateProvince', ev.target.value)} disabled={disabled} className=' disabled:bg-gray-100 disabled:text-gray-400'/>
- setAddressProps('zipCode', ev.target.value)} disabled={disabled} className=' disabled:bg-gray-100 disabled:text-gray-400'/> + setAddressProps('zipCode', ev.target.value)} disabled={disabled} className=' disabled:bg-gray-100 disabled:text-gray-400'/>
- setAddressProps('country', ev.target.value)} disabled={disabled} className=' disabled:bg-gray-100 disabled:text-gray-400'/> + setAddressProps('country', ev.target.value)} disabled={disabled} className=' disabled:bg-gray-100 disabled:text-gray-400'/>
) diff --git a/donutshop_ecommerce/src/components/layout/Header.js b/donutshop_ecommerce/src/components/layout/Header.js index 77c5d02..566dcb6 100644 --- a/donutshop_ecommerce/src/components/layout/Header.js +++ b/donutshop_ecommerce/src/components/layout/Header.js @@ -49,8 +49,8 @@ const Header = () => {
    Home Menu - about - contact + about + contact
@@ -73,13 +73,31 @@ const Header = () => {
setNav(!nav)} className="cursor-pointer pr-4 z-20 text-[#95743D] md:hidden "> {nav ? : }
{nav && ( -
    -
  • setNav(!nav)} className="flex flex-col gap-4 cursor-pointer capitalize text-3xl"> - Home - menu - about - contact - login +
      +
    • setNav(!nav)} className="w-full flex flex-col gap-5 cursor-pointer capitalize text-xl px-5"> +
      +
      + Home + menu + about + contact +
      +
      + {status === 'authenticated' && ( + <> + {userName} + Your cart({cartProducts.length}) + + + )} + {status === 'unauthenticated' && ( + <> + login + Register + + )} +
      +
    )} diff --git a/donutshop_ecommerce/src/components/layout/HomeMenu.js b/donutshop_ecommerce/src/components/layout/HomeMenu.js index 71f0cfd..678afca 100644 --- a/donutshop_ecommerce/src/components/layout/HomeMenu.js +++ b/donutshop_ecommerce/src/components/layout/HomeMenu.js @@ -79,8 +79,8 @@ const HomeDrink = () => {
    {bestSeller?.length > 0 && bestSeller.map(item => ( -
    - +
    +
    ))} diff --git a/donutshop_ecommerce/src/components/layout/MenuItemForm.js b/donutshop_ecommerce/src/components/layout/MenuItemForm.js index a1fdf97..6f0798c 100644 --- a/donutshop_ecommerce/src/components/layout/MenuItemForm.js +++ b/donutshop_ecommerce/src/components/layout/MenuItemForm.js @@ -32,7 +32,7 @@ const MenuItemForm = ({handleMenuFormSubmit, menuItem}) => {
    diff --git a/donutshop_ecommerce/src/components/layout/UserForm.js b/donutshop_ecommerce/src/components/layout/UserForm.js index e0c7b84..578335a 100644 --- a/donutshop_ecommerce/src/components/layout/UserForm.js +++ b/donutshop_ecommerce/src/components/layout/UserForm.js @@ -45,7 +45,7 @@ const UserForm = ({user, onSave}) => { {loginAsUser.admin && (
    - setAdmin(ev.target.checked)}/> + setAdmin(ev.target.checked)}/>
    )} diff --git a/donutshop_ecommerce/src/components/menu/Menu.js b/donutshop_ecommerce/src/components/menu/Menu.js index 8907511..b8b87d0 100644 --- a/donutshop_ecommerce/src/components/menu/Menu.js +++ b/donutshop_ecommerce/src/components/menu/Menu.js @@ -61,8 +61,8 @@ const Menu = (menuItem) => {

    Choose your size

    {sizes.map(size => ( -
    - setSelectedsize(size)} checked={selectedSize?.itemName === size.itemName}/>{size.itemName} ${basePrice + size.price} +
    + setSelectedsize(size)} checked={selectedSize?.itemName === size.itemName}/>{size.itemName} ${basePrice + size.price}
    ))}
    @@ -71,8 +71,8 @@ const Menu = (menuItem) => {

    Extra toppings

    {extraItems.map(extraTopping => ( -
    - handleSelectedTopping(ev, extraTopping)}/>{extraTopping.itemName} (${extraTopping.price}) +
    + handleSelectedTopping(ev, extraTopping)}/>{extraTopping.itemName} (${extraTopping.price})
    ))}
    diff --git a/donutshop_ecommerce/tailwind.config.js b/donutshop_ecommerce/tailwind.config.js index 7980350..0847a68 100644 --- a/donutshop_ecommerce/tailwind.config.js +++ b/donutshop_ecommerce/tailwind.config.js @@ -12,6 +12,9 @@ module.exports = { "gradient-conic": "conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))", }, + fontFamily: { + creepSter: ["var(--font-creepster)"], + }, }, }, plugins: [],