Welcome to the ESÜ Store! This is a modern, high-performance, full-stack e-commerce platform built using the latest web development technologies. It provides a seamless shopping experience with a focus on premium jewellery, clothing, and accessories.
Muhammad Hamza
Here are the key features of the ESÜ Store application:
- User Authentication: Secure login and registration with session management
- Product Management: Full CRUD operations for products with rich media support
- Dynamic Search: Advanced product search and filtering capabilities
- Shopping Cart: Real-time cart management with Zustand state management
- Secure Payments: Stripe integration for secure payment processing
- Order Management: Complete order lifecycle tracking
- Admin Dashboard: Comprehensive admin interface using Payload CMS
- Email Notifications: Automated emails via Resend API
- Image Optimization: Cloudinary integration for media management
- Responsive Design: Mobile-first approach using Tailwind CSS
- SEO Optimization: Built-in SEO features with next-sitemap
- Real-time Updates: Live notifications using Sonner
- Type Safety: End-to-end type safety with tRPC and TypeScript
- Next.js 14: App Router, Server Components, API Routes
- TypeScript: Type-safe development
- TailwindCSS: Utility-first CSS framework
- Shadcn/ui: Accessible component system
- Zustand: State management
- React Hook Form: Form handling with Zod validation
- Embla Carousel: Modern carousel/slider
- Framer Motion: Animations
- SWR: Data fetching
- Sonner: Toast notifications
- Payload CMS: Headless CMS and Admin dashboard
- MongoDB: Database (via @payloadcms/db-mongodb)
- tRPC: End-to-end typesafe API
- Express: Server framework
- Stripe: Payment processing
- Resend: Email service
- Cloudinary: Media management
- Docker: Containerization
- Docker Compose: Multi-container orchestration
- Nodemon: Development server
- ESLint: Code linting
- TypeScript: Static type checking
- Node.js (>= 18.x)
- Yarn package manager
- MongoDB instance
- Stripe account
- Cloudinary account
- Resend API account
-
Clone the repository:
git clone https://github.com/hamza3256/esu-store.git cd esu-store
-
Install dependencies:
yarn install
-
Set up environment variables in
.env
:# App NEXT_PUBLIC_SERVER_URL=http://localhost:3000 # Database MONGODB_URL=your_mongodb_url # Stripe STRIPE_SECRET_KEY=your_stripe_secret_key STRIPE_WEBHOOK_SECRET=your_stripe_webhook_secret # Cloudinary CLOUDINARY_CLOUD_NAME=your_cloud_name CLOUDINARY_API_KEY=your_api_key CLOUDINARY_API_SECRET=your_api_secret # Resend RESEND_API_KEY=your_resend_api_key
-
Start the development server:
yarn dev
-
Generate Payload types (when collections change):
yarn generate:types
-
Build the application:
yarn build
-
Start production server:
yarn start
- Build and run with Docker Compose:
docker-compose up --build
/src
/app - Next.js app router pages
/collections - Payload CMS collections
/components - React components
/config - Configuration files
/hooks - Custom React hooks
/lib - Utility functions
/product_files - Product-related files
/trpc - tRPC router and procedures
middleware.ts - Next.js middleware
payload.config.ts - Payload CMS configuration
server.ts - Express server setup
yarn dev
: Start development serveryarn build
: Build for productionyarn start
: Start production serveryarn generate:types
: Generate Payload typesyarn lint
: Run ESLintyarn postbuild
: Generate sitemap
- Next.js 14.1.3
- React 18.x
- Payload CMS 2.11.2
- TypeScript 5.x
- Tailwind CSS 3.3.0
- Stripe 14.23.0
- tRPC 10.45.2
- 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 proprietary software. All rights reserved.
For support or inquiries, please contact us at [email protected]