Built using a microservices architecture and Turborepo for monorepo management.
api-gateway: Central API Gateway for routing and request managementauth-service: Authentication and authorization service with JWTstorefront: Customer-facing Next.js applicationvendor-dashboard: Vendor management dashboardvendor-service: Vendor profile and business logic managementuser-service: User account and profile managementupload-service: File upload and media managementproduct-service: Product catalog and inventory managementorder-service: Order processing and fulfillmentpayment-service: Payment processing and transaction handlingcart-service: Shopping cart management and persistence
@repo/ui: Shared UI components library with Tailwind CSS@repo/shared-server: Common server utilities and configurations@repo/eslint-config: Centralized ESLint configurations@repo/typescript-config: TypeScript configurations for the monorepo@repo/types: Shared TypeScript type definitions@repo/shared-client: Common utilities and helper functions@repo/messaging: RabbitMQ message broker integration@repo/redis: Redis client configuration and utilities@repo/email: Email service templates and sending logic
- Express.js
- Drizzle ORM
- PostgreSQL - Primary database
- Docker
- Turborepo
- PNPM
- Redis
- RabbitMQ
- MinIO - S3-compatible object storage
- MailHog - Email testing in development
- ESLint & Biome - Code linting and formatting
- Vitest - Unit testing framework
- TSup - TypeScript bundler
-
Install dependencies:
pnpm install
-
Start infrastructure services:
./scripts/start-services.sh # or docker-compose -f docker-compose.dev.yml up -d -
Start development servers:
pnpm dev
-
Stop infrastructure services:
./scripts/stop-services.sh
- Build all packages:
pnpm build - Lint code:
pnpm lint - Type checking:
pnpm check-types - Run tests:
pnpm test - Format code:
pnpm format
pnpm db: Database management utilityscripts/start-services.sh: Start infrastructure servicesscripts/stop-services.sh: Stop infrastructure servicesdocker-compose.dev.yml: Development infrastructure configuration