This project is a high-end management system for a luxury beauty salon (Mavluda Azizova Beauty House) and a wedding dress rental service (Aliya Wedding Room). Every aspect of the system must reflect the premium nature of these services.
The project is structured as a monorepo with a dedicated backend and frontend.
- Architecture: Hexagonal Architecture (Ports and Adapters).
- Database: MongoDB (via Mongoose).
- Core Principles:
- Domain Layer: Pure business logic, no external dependencies (entities, value objects).
- Application Layer: Use cases and business flows (booking, rental logic).
- Infrastructure Layer: Framework-specific code, database adapters, external integrations (Instagram, SMS).
- Key Modules:
booking,inventory(wedding dresses),partnership(influencers),veil,gallery,payment,user,auth.
- Architecture: Modern, Zoneless, Signal-based.
- Change Detection: Zoneless (
provideZonelessChangeDetection()). - State Management: Reactive signals (
signal,computed,effect). - Components: 100% Standalone components.
- Styling: Tailwind CSS for a modern, "alive" aesthetic.
- Internationalization: i18n support for English (en-US), Russian (ru), and Tajik (tg).
/backend: NestJS API./frontend: Angular SPA..agent/rules: Architectural and development mandates.
/*/domain: Business entities and logic./*/application: Use cases and services./*/infrastructure: Controllers, repositories, and DTOs./*/presentation: API endpoints (sometimes combined with infrastructure).common/: Shared config, database connection, decorators, and guards.
pages/: Route-level components.features/: Complex UI logic (e.g., auth, language selection).entities/: Data-focused components and services.widgets/: Independent, reusable UI blocks (header, sidebar, layouts).shared/: Generic UI components, pipes, services, and models.core/: Config, guards, and interceptors.
npm run start:dev: Run backend in development mode with watch.npm run build: Build the backend for production.npm run lint: Run ESLint with auto-fix.npm run test: Run unit tests.
npm run dev: Run frontend development server (ng serve).npm run build: Build the frontend for production.npm run preview: Run production build preview.
- Hexagonal Purity: Infrastructure/Controllers -> Application -> Domain. The Domain must not import anything from other layers.
- Module Aliases: Use
@modules/*,@common/*, etc., as defined intsconfig.json. - Entity Mapping: Every module must strictly map to business domains (e.g.,
booking-modulefor VIP scheduling).
- Zoneless Only: Never rely on Zone.js. All UI updates must be triggered via signals or explicit change detection.
- Signals over Observables: Use
signal()for state. UsetoSignal()when dealing with HTTP calls if needed, but prefer signal-based state management. - Modern Syntax:
- Use
@if,@for,@switchcontrol flows. - Use
input()andoutput()instead of@Input()and@Output(). - Use
inject()for dependency injection instead of constructors.
- Use
- Standalone: All components, directives, and pipes must be standalone.
- Node.js: Modern LTS version recommended.
- Database: MongoDB instance required for the backend.
- Environment Variables: Managed via
.envin the root and project-specific config files.