This is a monorepo for an eCommerce application with separate Admin and Store applications. It is built using modern web technologies such as Next.js, TypeScript, Prisma, Tailwind CSS, and Clerk for authentication. The admin panel allows for product management, order tracking, and more, while the store allows customers to browse products, view details, and complete purchases.
- Admin Panel: app-ecommerce-admin.vercel.app
- Storefront: app-ecommerce-store.vercel.app
- Ecommerce Admin: An admin dashboard for managing the eCommerce store's products, orders, categories, etc.
- Ecommerce Store: A storefront where users can browse and purchase products.
- Next.js: React framework for building modern web applications.
- Tailwind CSS: Utility-first CSS framework for fast UI development.
- TypeScript: Superset of JavaScript that adds static typing.
- Stripe: Payment gateway for handling purchases.
- Zustand: State management solution for React.
- Vercel: Deployment platform for modern web applications.
- Clerk Authentication: User authentication and management solution.
- Prisma ORM: Database access layer with support for MySQL and PlanetScale.
- Radix UI: Components for building accessible UI primitives.
- React Hook Form: Performant form handling and validation.
- Zod: Validation library for form inputs and API responses.
- Headless UI: Unstyled, fully accessible UI components designed to integrate with Tailwind CSS.
- Authentication: Managed with Clerk.
- Prisma ORM Setup: Integrated with PlanetScale for scalable MySQL database management.
- Dashboard Setup: Manage orders, products, categories, sizes, colors, and more.
- Billboards Entity: Manage promotional content across the store.
- Data Tables: Display structured data with pagination and filtering options.
- Entity Management: Control over products, categories, sizes, and colors.
- Stripe Integration: Payment processing and checkout management.
- Dark Mode: User preference for dark mode UI.
- Deployment: Easily deploy the app on Vercel.
- Environment Setup: Configurable environment for API keys, database connections, etc.
- Product Screens: Detailed product information for individual products.
- Category Screens: Browse products by category.
- Product Preview Modals: Quick view modals for product details.
- Add to Cart: Functionality for adding products to the shopping cart.
- Checkout: Finalize purchase with Stripe integration.
- Featured Products: Display selected products on the homepage.
To run the project, use the following commands:
# Development server
npm run dev
# Production build
npm run build
# Start production server
npm start
# Lint the codebase
npm run lint
# Development server
npm run dev
# Production build
npm run build
# Start production server
npm start
# Lint the codebase
npm run lint
# Clone the repository
git clone https://github.com/yourusername/ecommerce-application.git
# cd into the project root
cd ecommerce-application
# Install the dependencies
# Admin
cd ecommerce-admin
npm install
# Store
cd ecommerce-store
npm install
Create a .env.local
or .env
file in the root of the project with the following environment variables:
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL=/
NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL=/
DATABASE_URL=
NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME=
NEXT_PUBLIC_CLOUDINARY_PRESET=
STRIPE_API_KEY=
FRONTEND_STORE_URL=http://localhost:3001
Note: The
DATABASE_URL
should be a connection string to your PostgreSQL database.
NEXT_PUBLIC_API_URL=http://localhost:3000/api/{store_id}
Note: The
store_id
should be the ID of the store you want to connect to.
The application is optimized for deployment on Vercel. Ensure that your environment variables are correctly set up in the Vercel dashboard for both admin and store applications.
This project is open source and available under the MIT License.