Appearance
Operations Module Overview
The Operations module provides the core work-management primitives for the DaraMex platform: Tasks, Projects, Events, Kanban statuses, Checklists, and Tags. It follows a Hexagonal / Clean Architecture layout under apps/api/src/modules/operations/.
Domain
- Task — actionable work items with optional start/end dates, kanban status, assignees, tags, checklists, and attachments.
- Project — containers for tasks with their own kanban board.
- Event — calendar events with start/end dates, participants, all-day flag, and attachments.
- KanbanStatus — configurable columns within a project board.
- NotificationRule — internal aggregate that tracks scheduled notifications for tasks and events. Not exposed via HTTP; managed by
NotificationRuleSchedulerService.
Architecture
presentation/ ← HTTP controllers (thin, CQRS dispatch)
application/
commands/ ← Write use-cases (CreateTask, UpdateEvent, …)
queries/ ← Read use-cases (SearchTasks, ListEvents, …)
domain/
entities/ ← Task, Event, Project, NotificationRule, …
repositories/ ← ITaskRepository, IEventRepository, INotificationRuleRepository, …
services/ ← INotificationRuleScheduler (port)
value-objects/ ← Enums, Zod schemas
infrastructure/
persistence/ ← TypeORM entities for the operations schema
repositories/ ← Repository implementations with metrics
mappers/ ← toDomain / toPersistence
services/ ← NotificationRuleSchedulerService
migrations/ ← TypeORM migration filesThe module imports ScheduleModule to gain access to IScheduleService for deferred notification scheduling.
Features
- Schedule Integration — how events and tasks trigger schedule jobs for notifications.
Cross-Links
- Schedule Module — the scheduling infrastructure used by this module.
- Panel: Tasks & Projects — panel UI backed by this module.
- Panel: Calendar — calendar UI backed by this module.