A modern, full-featured admin dashboard for managing e-commerce stores. Built with Next.js 14, featuring a beautiful UI with Tailwind CSS, authentication with Clerk, and complete store management capabilities.
This admin dashboard provides a comprehensive solution for managing multiple e-commerce stores. It includes features for product management, category organization, order tracking, and analytics. The dashboard supports multiple themes (light/dark mode) and provides a responsive interface for both desktop and mobile devices.
- πͺ Create and manage multiple stores
- βοΈ Store-specific settings and configurations
- π Individual API routes for each store
- π Store-specific analytics and reporting
- π¦ Create, edit, and delete products
- πΌοΈ Multiple image upload with Cloudinary
- π¨ Color and size variants
- π Category organization
- β Featured product highlighting
- ποΈ Product archiving
- π³ Stripe payment integration
- π Order tracking and management
- π° Payment status monitoring
- π Webhook integration for real-time updates
- π― Billboard creation and management
- π Category management
- π Size options configuration
- π¨ Color variants management
- π Revenue tracking
- π Sales analytics
- π¦ Stock monitoring
- π Interactive charts and graphs
- π Dark/Light mode
- π± Responsive design
- β¨ Modern UI components
- π Real-time updates
Before you begin, ensure you have the following installed:
- Node.js (v18.0.0 or higher)
- npm (v9.0.0 or higher) or yarn
- PostgreSQL database
- Git
And accounts for the following services:
- Clerk (Authentication)
- Stripe (Payments)
- Cloudinary (Image hosting)
- Vercel (Deployment - optional)
- Clone the repository:
git clone https://github.com/rohit4242/e-commerce-admin-dashboard
cd e-commerce-admin-dashboard- Install dependencies:
npm install
# or
yarn install- Set up environment variables:
Create a
.env.localfile in the root directory with the following variables:
# Database
DATABASE_URL="your-postgresql-url"
# Auth
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=
# Images
NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME=
# Payment
STRIPE_API_KEY=
STRIPE_WEBHOOK_SECRET=
# URLs
FRONTEND_STORE_URL=- Initialize the database:
npx prisma generate
npx prisma db push- Seed the database (optional):
npm run seedRun the development server:
npm run dev
# or
yarn devOpen http://localhost:3000 with your browser to see the result.
npm run build
# or
yarn build- Push your code to GitHub
- Import your project to Vercel
- Add environment variables in the Vercel dashboard
- Deploy
The easiest way to deploy is to use the Vercel Platform.
- Build the project:
npm run build- Start the production server:
npm startThe application provides the following API endpoints:
GET /api/[storeId]- Get store detailsPOST /api/stores- Create a new storePATCH /api/stores- Update store detailsDELETE /api/stores- Delete a store
GET /api/[storeId]/products- List all productsPOST /api/[storeId]/products- Create a new productGET /api/[storeId]/products/[productId]- Get product detailsPATCH /api/[storeId]/products/[productId]- Update productDELETE /api/[storeId]/products/[productId]- Delete product
GET /api/[storeId]/orders- List all ordersGET /api/[storeId]/orders/[orderId]- Get order details
- Next.js 14 - React framework
- React 18 - UI library
- Tailwind CSS - Styling
- shadcn/ui - UI components
- Lucide React - Icons
- React Hook Form - Form handling
- Zod - Schema validation
- date-fns - Date formatting
- recharts - Charts and graphs
- Prisma - ORM
- PostgreSQL - Database
- Clerk - Authentication
- Stripe - Payment processing
- Cloudinary - Image storage
- Axios - HTTP client
- Zustand - State management
- React Query - Server state management
- TypeScript - Type safety
- ESLint - Linting
- Prettier - Code formatting
- Prisma Studio - Database management
src/
βββ app/
β βββ (auth)/
β βββ (dashboard)/
β βββ (root)/
β βββ api/
β βββ layout.tsx
βββ components/
β βββ ui/
β βββ modals/
βββ hooks/
βββ lib/
βββ providers/
βββ types/
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support, please:
- Open an issue in the repository
- Contact the development team
- Check the documentation
Built with β€οΈ using Next.js and TypeScript