How legacycylafamille/kanban-app works
Kanban project management is the product: users register or sign in, manage projects, and work with project boards and tasks. The frontend routes authenticated users to project and Kanban views; REST requests enter the Express backend, where controllers delegate to services and repositories for persistence. The legacy TodoList remains mounted alongside the newer API. The README describes RabbitMQ as part of the target event-driven direction, but no implementation appears in the supplied tree, so it is shown as a documented optional integration rather than active flow.
Main entry points: main.ts Express app · prisma.ts Prisma client · router.tsx App routes · httpClient.ts HTTP client
Components 29
Web application
- React entry
frontend/src/main.tsx - App routes
frontend/src/app/router.tsx - Auth views
frontend/src/features/auth/pages/LoginPage.tsx - Auth context
frontend/src/features/auth/context/AuthProvider.tsx - Project views
frontend/src/features/projects/pages/ProjectsPage.tsx - Kanban view
frontend/src/features/kanban/pages/KanbanPage.tsx - HTTP client
frontend/src/shared/api/httpClient.ts
REST backend
- Express app
backend/src/main.ts - Auth routes
backend/src/modules/auth/auth.routes.ts - Project routes
backend/src/modules/projects/project.routes.ts - Task routes
backend/src/modules/tasks/task.routes.ts - Board routes
backend/src/modules/boards/board.routes.ts - Legacy Todo API
backend/src/legacy/index.js
Domain services
- Auth controller
backend/src/modules/auth/AuthController.ts - Auth service
backend/src/modules/auth/AuthService.ts - Project controller
backend/src/modules/projects/ProjectController.ts - Project service
backend/src/modules/projects/ProjectService.ts - Task controller
backend/src/modules/tasks/TaskController.ts - Task service
backend/src/modules/tasks/TaskService.ts - Board controller
backend/src/modules/boards/BoardController.ts - Board service
backend/src/modules/boards/BoardService.ts
Persistence
- User repository
backend/src/modules/users/PrismaUserRepository.ts - Project repository
backend/src/modules/projects/PrismaProjectRepository.ts - Task repository
backend/src/modules/tasks/PrismaTaskRepository.ts - Board repository
backend/src/modules/boards/PrismaBoardRepository.ts - Prisma client
backend/src/shared/database/prisma.ts
Other components
- User
- PostgreSQL
- RabbitMQ
Connections 36
- User → React entry: uses
- React entry → App routes: renders
- App routes → Auth views: routes
- App routes → Project views: routes
- App routes → Kanban view: routes
- Auth views → Auth context: uses
- Auth context → HTTP client: requests
- Project views → HTTP client: requests
- Kanban view → HTTP client: requests
- HTTP client → Express app: REST/JSON
- Express app → Auth routes: mounts
- Express app → Project routes: mounts
- Express app → Task routes: mounts
- Express app → Board routes: mounts
- Express app → Legacy Todo API: mounts
- Auth routes → Auth controller: dispatches
- Project routes → Project controller: dispatches
- Task routes → Task controller: dispatches
- Board routes → Board controller: dispatches
- Auth controller → Auth service: calls
- Project controller → Project service: calls
- Task controller → Task service: calls
- Board controller → Board service: calls
- Auth service → User repository: reads/writes
- Project service → Project repository: reads/writes
- Task service → Task repository: reads/writes
- Task service → Project repository: checks access
- Board service → Board repository: reads/writes
- Board service → Project repository: checks access
- User repository → Prisma client: queries
- Project repository → Prisma client: queries
- Task repository → Prisma client: queries
- Board repository → Prisma client: queries
- Express app → Prisma client: connects
- Prisma client → PostgreSQL: persists
- Express app → RabbitMQ: event workflow