-
Multi-UI System
- 🛍️ User Interface (Next.js)
- 🏪 Seller Dashboard (Next.js)
- Modern, responsive design with Tailwind CSS
-
Authentication & Authorization
- 🔐 Secure user authentication
- 🔑 JWT with refresh token mechanism
- 📧 Email verification system
- 🔄 Password reset functionality
- 👥 Role-based access control (Users/Sellers)
-
Payment Integration
- 💳 Stripe Connect for seller payments
- 🏦 Secure payment processing
- 💰 Multi-currency support
The project follows a microservices architecture using Nx monorepo:
apps/
├── api-gateway/ # API Gateway service
├── auth-service/ # Authentication & user management
├── seller-ui/ # Seller dashboard frontend
└── user-ui/ # Customer-facing frontend
packages/
├── error-handler/ # Shared error handling
└── libs/ # Shared libraries
├── prisma/ # Database access layer
└── redis/ # Caching layer
-
Frontend
- Next.js 13+ (App Router)
- TypeScript
- Tailwind CSS
- React Query
-
Backend
- Node.js
- Express
- Prisma (ORM)
- Redis (Caching)
- PostgreSQL
-
DevOps & Tools
- Nx (Monorepo)
- Docker
- Jest (Testing)
-
Clone the repository
git clone https://github.com/your-username/eshop.git cd eshop -
Install dependencies
npm install
-
Set up environment variables
# Copy example env files cp .env.example .env -
Start development servers
# Start all services npx nx run-many --target=serve --projects=api-gateway,auth-service,user-ui,seller-ui --parallel=4 # Or start individual services npx nx serve auth-service npx nx serve user-ui npx nx serve seller-ui
- API Documentation is available at
/api/docsafter starting the services - Swagger UI for API testing and documentation
- Each microservice contains its own README with specific setup instructions
# Run all tests
npx nx run-many --target=test --all
# Test specific project
npx nx test auth-service- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.