Trenda is a modern fullstack e-commerce web application built with Next.js 15, Prisma + MongoDB, Better Auth, and shadcn/ui.
It provides a seamless shopping experience for customers and a powerful admin dashboard for managing products, orders, and users.
- Secure authentication with Better Auth
- Google Login via OAuth 2.0
- Role-based access (Admin & User) with middleware protection
- Session cookies with extended payload (role included for edge-safe checks)
- Browse products by categories
- Grid/List product view toggle
- Product reviews with rating summary
- Add to cart and checkout flow
- Order history
- Admin dashboard with role-based access control
- Manage products (CRUD with images & categories)
- Upload product images via UploadThing
- Manage orders and update status
- Sales analytics with charts (monthly sales, revenue, orders)
- Built with shadcn/ui components & Tailwind CSS
- Skeleton loaders for smooth UX
- Review and product card layouts (grid & list view)
- Frontend: Next.js 15 (App Router) + React + TailwindCSS
- UI Library: shadcn/ui
- Database: MongoDB (via Prisma ORM)
Auth: Better Auth with Google OAuth & session cookies - Image Uploads: UploadThing for product image storage
- Deployment: Vercel
Clone the repo and install dependencies:
git clone https://github.com/shiinedev/trenda.git
cd trenda
npm install DATABASE_URL="mongodb+srv://..."
BETTER_AUTH_SECRET="your-secret"
BETTER_AUTH_URL="http://localhost:3000",
GOOGLE_CLIENT_ID="your-google-clientId"
GOOGLE_CLIENT_SECRET="your-google-secret"
UPLOADTHING_TOKEN="your=uploadthing-token"MIT License © 2025 shiinedev