Skip to content

A feature-rich reusable e-commerce platform including monthly subscription system, language support, iframe, OTP authentication and more, designed for maintainability, scalability, and a delightful user experience. It demonstrates best practices in modular React/Next.js development, robust type safety, and real-world UI/UX polish.

Notifications You must be signed in to change notification settings

arnobt78/Ecommerce-Platform-SnuzzPro--NextJS-FullStack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Snuzz PRO - Modern E-Commerce Platform - Next.js Full Stack Project

Production-ready Next.js 15 e-commerce platform with multi-language support, OTP authentication, and comprehensive documentation.


πŸ“š Complete Documentation Available!

This project includes 150+ pages of professional documentation:

Quick Links:

For New Developers:

  1. Start with DOCUMENTATION_INDEX.md (5 min)
  2. Follow QUICK_START_GUIDE.md (10 min)
  3. Complete SETUP_GUIDE.md (60 min)
  4. Reference PROJECT_DOCUMENTATION.md as needed

Total onboarding time: 2-3 hours to fully productive!


A modern, modular, and production-ready e-commerce web application built with Next.js 15, React, TypeScript, Tailwind CSS, and Radix UI. Snuzz provides a beautiful, responsive shopping experience with real-world cart, checkout, and product detail flows deployed on Vercel, PostgreSQL, and Coolify.


Table of Contents

  • Project Summary
  • Features
  • Tech Stack
  • Project Structure
  • Getting Started
  • Scripts & Usage
  • Core Components
  • Context & State Management
  • Routing & Navigation
  • Styling & Theming
  • API & Data
  • Extending & Reusing Components
  • Deployment
  • Keywords
  • Conclusion

Project Summary

Snuzz is a feature-rich e-commerce platform designed for maintainability, scalability, and a delightful user experience. It demonstrates best practices in modular React/Next.js development, robust type safety, and real-world UI/UX polish. The project is ideal for learning, teaching, or as a foundation for your own e-commerce solution.


Features

  • Product Catalog: Browse, filter, and paginate products with detailed information.
  • Product Detail: Dynamic product pages with images, descriptions, and purchase options.
  • Cart & Cart Sidebar: Add, remove, and update product quantities. Access cart from anywhere.
  • Checkout Flow: Secure checkout with promo code support and order summary.
  • Responsive Design: Fully mobile-friendly and accessible.
  • Persistent Cart: Cart state is saved in localStorage.
  • Modern UI: Built with Tailwind CSS, Radix UI, and custom components.
  • Type Safety: End-to-end TypeScript for all logic and data.
  • Reusable Components: Modular, composable, and easy to extend.

Tech Stack

  • Framework: Next.js 15 (App Router, SSR/SSG, dynamic routes)
  • Language: TypeScript, React 18
  • Styling: Tailwind CSS, custom CSS, shadcn/ui, Radix UI
  • State Management: React Context API
  • Icons: Lucide React
  • Other: Embla Carousel, React Hook Form, Zod, and more

Project Structure

snuzz/
β”œβ”€β”€ app/                # Next.js app directory (routing, pages, layouts)
β”‚   β”œβ”€β”€ cart/           # Cart page
β”‚   β”œβ”€β”€ product-detail/ # Dynamic product detail route
β”‚   β”œβ”€β”€ products/       # Product listing page
β”‚   └── ...             # Other app routes and layouts
β”œβ”€β”€ components/         # All UI and feature components
β”‚   β”œβ”€β”€ Cart/           # Cart summary/details
β”‚   β”œβ”€β”€ Layout/         # Header, Footer, Sidebar, etc.
β”‚   β”œβ”€β”€ ProductCard/    # Product list and single card components
β”‚   β”œβ”€β”€ ProductDetail/  # Product detail sections
β”‚   β”œβ”€β”€ ui/             # shadcn/ui and Radix UI components
β”‚   └── ...             # Other shared components
β”œβ”€β”€ context/            # React Context (CartContext)
β”œβ”€β”€ data/               # Static product data
β”œβ”€β”€ hooks/              # Custom React hooks
β”œβ”€β”€ lib/                # Utility functions
β”œβ”€β”€ public/             # Static assets (images, icons)
β”œβ”€β”€ styles/             # Global and Tailwind CSS
β”œβ”€β”€ package.json        # Project dependencies and scripts
β”œβ”€β”€ tailwind.config.ts  # Tailwind CSS config
β”œβ”€β”€ tsconfig.json       # TypeScript config
└── ...                 # Other config and support files

Getting Started

Prerequisites

  • Node.js 18+
  • npm (or yarn/pnpm, but use only one lockfile!)

Installation

git clone https://github.com/your-username/snuzz.git
cd snuzz
npm install

Running Locally

npm run dev

Visit http://localhost:3000 in your browser.


Scripts & Usage

  • npm run dev – Start the development server
  • npm run build – Build for production
  • npm run start – Start the production server
  • npm run lint – Lint the codebase

Core Components

ProductCard

Reusable product card for listing and detail views.

import { SingleProductCard } from "@/components/ProductCard/SingleProductCard";

<SingleProductCard
  productSlug="klint-arctic-mint-1"
  productImage="/product-image.png"
  productName="Klint Arctic Mint"
  salePrice="€ 9,60"
  originalPrice="€ 14,99"
  saleLabel="Sale 30%"
  shippingLabel="Free shipping"
  stockStatus="in_stock"
  addToCart={() => ...}
/>

CartSidebar

Accessible from anywhere, shows cart items, allows quantity updates, and links to product detail.

import CartSidebar from "@/components/cart-sidebar";
// Used in layout, toggled via context

CartContext

Global state for cart items and sidebar open/close.

import { useCart } from "@/context/CartContext";
const { cartItems, setCartItems, cartOpen, setCartOpen } = useCart();

Context & State Management

  • CartContext: Provides cart state and actions via React Context.
  • Persistence: Cart is saved to localStorage and restored on reload.

Routing & Navigation

  • Dynamic Product Detail: /product-detail/[slug] (uses Next.js dynamic routes)
  • Cart Page: /cart
  • Product Listing: /products
  • Sidebar Navigation: Cart sidebar uses Next.js router for navigation.

Styling & Theming

  • Tailwind CSS: Utility-first styling, custom theme in tailwind.config.ts
  • shadcn/ui & Radix UI: Accessible, composable UI primitives
  • Custom CSS: For global styles and overrides

API & Data

  • Static Data: Products are defined in products.ts as TypeScript objects.
  • Type Safety: All product and cart data is strongly typed.

Extending & Reusing Components

  • All components are modular and reusable.
  • To use a component in another project, copy the component and its dependencies, and update imports as needed.
  • Example: To reuse the CartSidebar, import it and wrap your app in CartProvider.

Deployment

  • Vercel: Recommended for Next.js.
  • Lockfile: Use only one lockfile (package-lock.json for npm or pnpm-lock.yaml for pnpm).
  • Production Build: npm run build then npm run start

Keywords

nextjs, react, typescript, tailwindcss, ecommerce, cart, product, radix-ui, shadcn-ui, modular, context, responsive, ssr, ssg, vercel, modern-ui, component-library, best-practices


Conclusion

Snuzz is a modern, modular, and production-ready e-commerce platform built with the latest web technologies. Use it as a learning resource, a starter for your own projects, or a showcase of best practices in Next.js and React development.


Happy Coding! πŸš€

Thank you!


About

A feature-rich reusable e-commerce platform including monthly subscription system, language support, iframe, OTP authentication and more, designed for maintainability, scalability, and a delightful user experience. It demonstrates best practices in modular React/Next.js development, robust type safety, and real-world UI/UX polish.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages