How mohammad-alhayek/devflow works
This is a project and task management web app: users sign in, manage projects, create and assign tasks, and developers can view their assigned work and update task status. The sampled implementation shows project/task requests passing through API routes, authentication and validation, services, repositories, and Prisma. The tree and source index also identify personal-task and developer-directory features, but their implementation details were not sampled; those connections are shown only where supported or marked unverified.
Main entry points: TaskSection.js Project tasks · task.service.js Task service · auth.middleware.js Session guard · route.js Auth endpoints
Components 27
Web experience
- Sign-in pages
app/login/page.js - Project screens
app/(app)/projects/page.js - Project tasks
components/tasks/TaskSection.js - Task form
components/tasks/TaskForm.js - Task search
components/common/SearchInput.js - Assigned work
app/(app)/my-tasks/page.js - Kanban board
components/my-tasks/KanbanBoard.js
API routes
- Auth endpoints
app/api/auth/login/route.js - Project endpoints
app/api/projects/route.js - Project task endpoints
app/api/projects/[id]/tasks/route.js - Assigned-task endpoints
app/api/my-tasks/projects/route.js - Developer directory
app/api/users/developers/route.js
Domain logic
- Session guard
middlewares/auth.middleware.js - JWT sessions
lib/auth.js - Auth validation
validators/auth.validator.js - Account service
services/auth.service.js - Project validation
validators/project.validator.js - Task validation
validators/task.validator.js - Project service
services/project.service.js - Task service
services/task.service.js - User service
services/user.service.js
Persistence
- Project repository
repositories/project.repository.js - Task repository
repositories/task.repository.js - User repository
repositories/user.repository.js - Prisma client
lib/prisma.js
Other components
- User
- Database
Connections 35
- User → Sign-in pages: uses
- User → Project screens: manages
- Sign-in pages → Auth endpoints: submits credentials
- Project screens → Project tasks: shows tasks
- Project tasks → Project task endpoints: fetches and saves
components/tasks/TaskSection.js - Project tasks → Developer directory: fetches assignees
components/tasks/TaskSection.js - Project tasks → Task form: opens
components/tasks/TaskSection.js - Project tasks → Task search: filters with
components/tasks/TaskSection.js - User → Assigned work: reviews assigned work
- Assigned work → Kanban board: displays board
- Assigned work → Assigned-task endpoints: requests assignments
- Auth endpoints → Auth validation: validates input
app/api/auth/login/route.js - Auth endpoints → Account service: authenticates
app/api/auth/login/route.js - Auth endpoints → JWT sessions: creates session
app/api/auth/login/route.js - Account service → User repository: reads and creates users
services/auth.service.js - Session guard → JWT sessions: verifies token
middlewares/auth.middleware.js - Project endpoints → Session guard: checks session
app/api/projects/route.js - Project endpoints → Project validation: validates input
app/api/projects/route.js - Project endpoints → Project service: manages projects
app/api/projects/route.js - Project task endpoints → Session guard: checks session
app/api/projects/[id]/tasks/route.js - Project task endpoints → Task validation: validates input
app/api/projects/[id]/tasks/route.js - Project task endpoints → Task service: manages tasks
app/api/projects/[id]/tasks/route.js - Assigned-task endpoints → Session guard: checks session
app/api/my-tasks/projects/route.js - Assigned-task endpoints → Task service: loads assigned work
app/api/my-tasks/projects/route.js - Developer directory → Session guard: checks session
app/api/users/developers/route.js - Developer directory → User service: lists developers
app/api/users/developers/route.js - Project service → Project repository: uses
services/project.service.js - Task service → Task repository: reads and writes tasks
services/task.service.js - Task service → Project repository: checks project ownership
services/task.service.js - Task service → User repository: checks assignees
services/task.service.js - User service → User repository: uses
services/user.service.js - Project repository → Prisma client: queries through
repositories/project.repository.js - Task repository → Prisma client: queries through
repositories/task.repository.js - User repository → Prisma client: queries through
repositories/user.repository.js - Prisma client → Database: persists data