A modern, responsive e-commerce application for premium audio equipment. Built with Next.js, featuring a sleek design, shopping cart functionality, and seamless checkout experience.
- 🏠 Homepage with hero section, product categories, and featured products
- 📱 Fully Responsive design optimized for mobile, tablet, and desktop
- 🛍️ Shopping Cart with persistent storage using localStorage
- 💳 Checkout Flow with form validation and order confirmation
- 📦 Product Catalog organized by categories (Headphones, Speakers, Earphones)
- 🔍 Product Detail Pages with galleries, specifications, and recommendations
- 📧 Email Confirmation (optional) for order confirmations via SMTP
- 🗄️ Convex Backend for product data management
- 🎨 Design System with consistent UI components
- Next.js
- TypeScript
- Tailwind CSS
- React Hook Form
- Zod
- Convex
- Nodemailer - Email service (optional)
- Shadcn UI
Before you begin, ensure you have the following installed:
- Node.js 18+ and npm
- Convex CLI (install with
npm install -g convex)
git clone <https://github.com/dev-star23/Audiophile.git>
cd audiophilenpm installCreate a .env.local file in the root directory:
# Convex (Required)
NEXT_PUBLIC_CONVEX_URL=https://your-deployment.convex.cloud
# Email Configuration (Optional)
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your-email@gmail.com
SMTP_PASS=your-app-password
FROM_EMAIL=your-email@gmail.com
FROM_NAME=Audiophilenpx convex devThis will:
- Create a Convex project (if needed)
- Set up the database schema
- Start the Convex development server
- Generate the Convex URL
After running convex dev, copy the Convex URL and add it to your .env.local:
NEXT_PUBLIC_CONVEX_URL=https://your-deployment.convex.cloudPopulate the database with product data:
npx tsx scripts/seed-convex.tsOr use the Convex dashboard to run the mutation directly.
npm run devOpen http://localhost:3000 in your browser to see the application.
audiophile/
├── public/
│ └── images/ # Product images and assets
├── src/
│ ├── app/ # Next.js App Router pages
│ │ ├── api/ # API routes
│ │ ├── checkout/ # Checkout page
│ │ ├── product/ # Product detail pages
│ │ └── ...
│ ├── components/ # React components
│ │ ├── atoms/ # Basic UI components
│ │ ├── molecules/ # Composite components
│ │ ├── organisms/ # Complex components
│ │ └── ui/ # UI component library
│ ├── context/ # React Context providers
│ ├── lib/ # Utility functions
│ └── data/ # Type definitions
├── convex/ # Convex backend
│ ├── schema.ts # Database schema
│ ├── products.ts # Product queries
│ └── seed.ts # Seeding mutations
├── scripts/ # Utility scripts
│ └── seed-convex.ts # Database seeding script
└── db.json # Product data source
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLintnpm run convex:dev- Start Convex development servernpm run convex:deploy- Deploy Convex backend
The project follows a component-based architecture with:
- Atomic Design principles (atoms, molecules, organisms)
- Consistent styling with Tailwind CSS
- Accessible components using Radix UI
- Type-safe with TypeScript
View the design system at /design-system (in development).
This project is private and proprietary.
-- Built by K.S