Skip to main content

Component Diagram

This diagram shows the components within the API Application container.

API Application - Component Level

Component Descriptions

Controllers

  • Authentication Controller: Handles login, logout, token refresh
  • Case Controller: RESTful endpoints for case operations
  • Client Controller: RESTful endpoints for client operations
  • Document Controller: RESTful endpoints for document operations

Services

  • Authentication Service: JWT generation, password hashing, session management
  • Case Service: Case validation, status transitions, assignment logic
  • Client Service: Client onboarding, validation, conflict checking
  • Document Service: File validation, metadata extraction, version control

Middleware

  • Auth Middleware: JWT validation, permission checks, role-based access control
  • Validation Middleware: Request schema validation using Joi
  • Error Handler: Consistent error responses, logging, error tracking

Repositories

  • Case Repository: Database queries for cases
  • Client Repository: Database queries for clients
  • Document Repository: Database queries for document metadata
  • User Repository: Database queries for users and authentication

Design Patterns

  • Layered Architecture: Controllers -> Services -> Repositories
  • Dependency Injection: Services injected into controllers
  • Repository Pattern: Data access abstraction
  • Middleware Chain: Cross-cutting concerns (auth, validation, errors)