A modern, production-ready e-commerce platform specializing in skincare, body care, and fragrances. Clove's features an integrated AI Shopping Assistant that helps customers find products, build beauty routines, and get personalized recommendations using natural language.
- Frontend: Next.js 15 (App Router), TypeScript, Tailwind CSS, shadcn/ui, Framer Motion
- Backend: Next.js Server Actions, API Routes
- Database: Neon PostgreSQL with Prisma ORM
- Authentication: Auth.js (NextAuth v5) with Role-Based Access Control (Admin / User)
- Media Storage: Cloudinary
- AI Integration: Google Gemini API (gemini-1.5-flash)
- State Management: Zustand
- Forms & Validation: React Hook Form + Zod
- AI Shopping Assistant: Ask questions like "I have dry skin, what moisturizer should I use?" or "Recommend a floral summer perfume" and get tailored product suggestions.
- Modern Shopping Cart & Checkout Flow
- Wishlist Management
- Product Reviews & Ratings
- Dark/Light Mode & Premium Glassmorphism UI
- Fully Responsive & Accessible Design
- Analytics Overview
- Product & Inventory Management (Full CRUD)
- Secure Image Uploads (Direct to Cloudinary via Admin Panel)
- Category & Brand Management
- Order & Customer Tracking
- Node.js 18+
- A PostgreSQL database (e.g., Neon, Supabase, local)
- Google Gemini API Key
- Cloudinary Account
git clone https://github.com/beratnev/cloves.git
cd clovesnpm installCopy the example environment file:
cp .env.example .envOpen .env and fill in your credentials:
# Database
DATABASE_URL="postgresql://user:password@localhost:5432/cloves"
# Authentication (Generate a random 32-char string)
NEXTAUTH_SECRET="your-secret-key"
APP_URL="http://localhost:3000"
# AI
GEMINI_API_KEY="your-gemini-api-key"
# Media Storage
CLOUDINARY_URL="cloudinary://API_KEY:API_SECRET@CLOUD_NAME"Push the Prisma schema to your database:
npx prisma db pushnpm run devOpen http://localhost:3000 in your browser.
Admin privileges in this project are determined strictly by the role field in the database.
To create an admin account:
- Register a normal user account on the frontend.
- Open your database (e.g., Neon Console, Prisma Studio, or use a script).
- Find your user record and change the
rolefield to"ADMIN".
Once updated, you can log in and access the /admin dashboard. There are no hardcoded admin credentials in the source code.
- Push your code to GitHub.
- Import the repository into Vercel.
- Add all your environment variables in the Vercel Settings.
- Deploy!
If you are deploying to a custom subdomain like cloves.beratnev.com, add a CNAME record in your DNS settings:
- Type: CNAME
- Host: cloves
- Value:
cname.vercel-dns.com(or your specific Vercel project URL) - TTL: Automatic
MIT License
For support or inquiries, please contact beratnevcanoglu@outlook.com or open an issue on GitHub.