TaskFlow is a full-stack monorepo productivity platform built with Next.js and Express. The codebase follows Clean Architecture, with clear separation between use cases, repositories, interfaces, DTOs, validation, and infrastructure (ORM, auth, event bus). This documentation describes the structure and how the pieces fit together.
- Start with Architecture for the big picture and layers.
- Read Data flow to see a concrete request path (e.g. create user).
- Use Monorepo to find where everything lives (packages, paths, scripts).
- Dive into package docs for details: Core, Infra, Shared.
- See Backend stack for routes, controllers, and middlewares.
- Check Design patterns for SOLID and Clean Code mapping.
- See SOLID and Clean Architecture for principle-by-principle examples from the codebase.
| Document | Description |
|---|---|
| Architecture | High-level architecture, layers, dependency rule, request path |
| Data flow | End-to-end flow: HTTP → validation → use case → DB and events |
| Monorepo | Workspaces, packages, build order, key paths, scripts |
| Backend stack | API app: routes, controllers, middlewares, config |
| Core package | Use cases, subscribers, and how they use ports |
| Infra package | Repositories, interfaces, Prisma, event bus, errors |
| Shared package | DTOs, Zod schemas, entities, events, shared types |
| Design patterns | Repository, use case, DI, adapters, SOLID, Clean Code |
| SOLID and Clean Architecture | How SOLID and Clean Architecture are applied, with workspace code examples |