Centralized_Reporting_Backend/.cursor/rules/project_structure.mdc

195 lines
4.7 KiB
Plaintext

---
description:
globs:
alwaysApply: true
---
RULE-001: Root Structure
yamlrule_id: FS-001
category: Folder Structure
applies_to: Project Root
requirements:
- Must include the following top-level folders:
- /src → All application code
- /config → Configuration files
- /scripts → Utility scripts (migrations, seeds)
- /tests → Unit & integration tests
- /docs → Documentation & API specs
- Must include the following root files:
- package.json
- .env.example
- README.md
- tsconfig.json (if TypeScript)
validation:
- No business logic in root folder
- Config files must not include secrets
RULE-002: API Layer
yamlrule_id: FS-002
category: Folder Structure
applies_to: /src/api
requirements:
- /src/api must contain:
- /routes → API route definitions
- /controllers → Request handlers
- /middlewares → Shared middleware (auth, rate limit, logging)
- /validators → Request validation schemas
validation:
- Routes must only delegate to controllers
- Controllers must not include business logic
- Middleware must be reusable across services
RULE-003: Authentication
yamlrule_id: FS-003
category: Security
applies_to: /src/auth
requirements:
- Must include:
- jwt.service.js (JWT management)
- oauth.service.js (OAuth 2.0 flows)
- session.service.js (session handling)
- Must store provider configs in /config/auth.js
validation:
- Auth services must not contain route logic
- Token utilities must be stateless
RULE-004: Business Logic Layer
yamlrule_id: FS-004
category: Application Logic
applies_to: /src/services
requirements:
- Each domain service in its own folder:
- /dashboard → Dashboard services
- /integration → Integration orchestration
- /reporting → Reporting/aggregation (future BI)
- Business logic implemented as service classes/functions
validation:
- Services must not directly access DB models
- Services must call repository layer
RULE-005: Integration Layer (n8n & APIs)
yamlrule_id: FS-005
category: Integration
applies_to: /src/integrations
requirements:
- Must include subfolders per integration:
- /zoho
- /quickbooks
- /hubspot
- /bamboohr
- /n8n
- Each integration must contain:
- client.js → API client
- mapper.js → Data mapping/transformation
- handler.js → Webhook/event handler
validation:
- No direct DB writes inside client files
- Handlers must go through service layer
RULE-006: Data Persistence Layer
yamlrule_id: FS-006
category: Data Layer
applies_to: /src/data
requirements:
- Must include:
- /models → Sequelize/Prisma models
- /repositories → Data access logic
- /migrations → Database migrations
- /seeds → Initial test/demo data
validation:
- Repositories must be the only layer accessing models
- No raw queries in services (must go through repository)
RULE-007: Background Jobs
yamlrule_id: FS-007
category: Jobs
applies_to: /src/jobs
requirements:
- Must include:
- /workers → Queue processors
- /schedulers → Cron/scheduled tasks
- /queues → Job definitions
validation:
- Jobs must not block main thread
- Workers must log execution status
RULE-008: Utilities & Shared Modules
yamlrule_id: FS-008
category: Utilities
applies_to: /src/utils
requirements:
- Must include:
- logger.js
- error-handler.js
- constants.js
- helpers.js
- Utilities must not depend on services
validation:
- Utilities must be stateless
- Logger must include correlation IDs
RULE-009: Configuration
yamlrule_id: FS-009
category: Configuration
applies_to: /config
requirements:
- Must include:
- database.js (MySQL config)
- redis.js (cache config)
- auth.js (OAuth provider config)
- app.js (app-level configs)
- Must support multiple environments (dev/stage/prod)
validation:
- No hardcoded secrets
- Configs must be environment-driven
RULE-010: Testing
yamlrule_id: FS-010
category: Testing
applies_to: /tests
requirements:
- Must include:
- /unit → Unit tests per service
- /integration → API & DB integration tests
- /mocks → Mock data
- Must use Jest or Mocha
validation:
- All controllers must have unit tests
- Critical integrations must have mock-based tests
/CentralizedReportingBackend
/src
/api
/routes
/controllers
/middlewares
/validators
/auth
/services
/dashboard
/integration
/integrations
/zoho
/quickbooks
/hubspot
/bamboohr
/n8n
/data
/models
/repositories
/migrations
/seeds
/jobs
/workers
/schedulers
/queues
/utils
/config
/scripts
/tests
/unit
/integration
/mocks
/docs
package.json
README.md
.env.example