Skip to main content
All projects

Candy Beauty

client e-commerce·deployed·Mar 2024 — Apr 2024

Personal project

Overview

Candy Beauty is a full-stack cosmetics e-commerce website for a beauty brand selling skincare, makeup, haircare, and body care products. The platform includes a polished public storefront, product browsing, product detail pages, authentication, cart and checkout flows, Stripe test payments, a customer account area, and a protected admin dashboard for managing products, categories, orders, and basic analytics. The catalog is localized for Cameroon with FCFA pricing, Cameroon-focused beauty products, and sold-out product handling.

Problem

Small beauty brands need a professional online sales channel that feels premium to customers while still giving the owner practical tools for managing products, orders, and inventory without needing a separate back-office system.

Solution

Built a responsive full-stack e-commerce platform with a soft premium beauty aesthetic, authentication-gated cart and checkout behavior, Stripe checkout, PostgreSQL persistence, seeded Cameroon-focused product data, and a protected admin dashboard for day-to-day store management.

Architecture

Next.js App Router application using server-rendered pages and API routes, Prisma as the database layer, PostgreSQL on Neon for production storage, NextAuth.js for authentication and role-based access, Zustand for client-side cart state, Zod and React Hook Form for validation, and Stripe Checkout for payments. Vercel handles production deployment from the GitHub main branch.

Technology stack

Next.js 14ReactTypeScriptTailwind CSSPrismaPostgreSQLNeonNextAuth.jsStripeZustandZodVercel

Screenshots

Candy Beauty - homepage
Candy Beauty - products
Candy Beauty - admin dashboard
Candy Beauty - about
Candy Beauty - contact

Key features

  • Responsive public storefront with homepage, product listing, product detail pages, about, and contact pages
  • FCFA pricing and Cameroon-focused beauty product catalog
  • Authentication-gated cart and checkout flow
  • Stripe Checkout integration in test mode
  • Customer account dashboard with profile editing, logout, order history, and account deletion
  • Protected admin dashboard for products, categories, orders, analytics, and image upload
  • Sold-out product handling and admin inventory management
  • Seeded products, categories, reviews, and sample orders for local and production testing

Challenges

  • Adapting the database setup from local SQLite development to PostgreSQL on Neon for production deployment
  • Designing separate customer and admin account experiences while keeping authentication and role checks clear
  • Preventing unauthenticated users from creating cart and checkout actions without blocking public product browsing

Lessons learned

  • E-commerce projects need server-side authorization checks in addition to client-side UI guards
  • Deployment readiness depends on database configuration, seed scripts, and environment variables being documented early
  • Localizing products, prices, and currency makes the shopping experience feel much more realistic for the target market

Future improvements

  • Add production image storage with UploadThing or Cloudinary
  • Add Stripe webhooks for stronger payment/order synchronization
  • Add product reviews from real authenticated customers
  • Add email confirmations for orders and account actions