Skip to content

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 files

The module imports ScheduleModule to gain access to IScheduleService for deferred notification scheduling.

Features