A comprehensive e-commerce tracking API built with NestJS, Prisma, PostgreSQL, and pnpm.
- 🔐 Authentication & Authorization - JWT-based authentication with role-based access control
- 📦 Product Management - Full CRUD operations for products with variants, inventory, and categories
- 🛒 Order Management - Complete order processing with payment integration
- 📍 Real-time Tracking - Shipment tracking with multi-carrier support (UPS, FedEx, DHL, USPS)
- 🏭 Warehouse Management - Multi-warehouse inventory tracking and management
- 📊 Analytics - Product and order analytics
- 🔗 Webhooks - Webhook support for real-time updates
- 📚 API Documentation - Swagger/OpenAPI documentation
- 🛡️ Security - Helmet, rate limiting, input validation, and CORS
- Framework: NestJS
- Database: PostgreSQL
- ORM: Prisma
- Package Manager: pnpm
- Validation: class-validator, class-transformer
- Documentation: Swagger/OpenAPI
-
Follow the setup instructions: See SETUP.md for detailed installation and configuration steps.
-
Install dependencies:
pnpm install
-
Set up environment variables:
cp .env.example .env # Edit .env with your configuration -
Initialize database:
pnpm prisma:generate pnpm prisma:migrate
-
Run the application:
pnpm start:dev
- Health Check:
GET /health - API Documentation:
GET /api-docs - Authentication:
POST /api/v1/auth/register,POST /api/v1/auth/login - Products:
GET /api/v1/products,POST /api/v1/products, etc. - Orders:
GET /api/v1/orders,POST /api/v1/orders, etc. - Tracking:
GET /api/v1/tracking/:trackingId - Webhooks:
POST /api/v1/webhooks
src/
├── auth/ # Authentication module
├── users/ # User management
├── products/ # Product management
├── orders/ # Order management
├── tracking/ # Tracking functionality
├── webhooks/ # Webhook handling
├── monitoring/ # System monitoring
├── common/ # Shared utilities, guards, decorators
├── config/ # Configuration service
├── prisma/ # Prisma service and module
└── main.ts # Application entry point
pnpm start:dev- Start development serverpnpm build- Build for productionpnpm start:prod- Start production serverpnpm prisma:migrate- Run database migrationspnpm prisma:studio- Open Prisma Studiopnpm test- Run testspnpm lint- Run ESLint
MIT