How tuannancy/taskfolio works
Todo-Tasks is a personal task manager with a React client, Express API, and MongoDB persistence. The main workflow is browser sign-in or registration, session restoration, then authenticated task creation, editing, completion, filtering, and pagination; the server scopes task queries to the current user. The graph also shows validation, persistence, health checks, and shared error handling. Several frontend implementation details and deployment components are not represented in the supplied tree or excerpts, so their links are limited to README-documented relationships.
Main entry points: server.js API startup · App.jsx App and routes · app.js HTTP app · tasksControllers.js Task operations
Components 23
React client
- App and routes
frontend/src/App.jsx - Auth context
frontend/src/context/AuthContext.jsx - Login and registration
frontend/src/pages - Protected route
frontend/src/components/ProtectedRoute.jsx - Task interface
frontend/src/components/TodoApp.jsx - Task controls
frontend/src/components - Task queries
frontend/src/hooks/useTasks.js - Axios API client
frontend/src/services/api.js
Express API
- API startup
backend/src/server.js - HTTP app
backend/src/app.js - Auth routes
backend/src/routes/authRoutes.js - Task routes
backend/src/routes/tasksRouters.js - Session middleware
backend/src/middleware/auth.js - Error responses
backend/src/middleware/errorHandler.js - Runtime config
backend/src/config/env.js
Identity and tasks
- Auth operations
backend/src/controllers/authControllers.js - Task operations
backend/src/controllers/tasksControllers.js - Request validation
backend/src/validation/schemas.js
Persistence
- User model
backend/models/User.js - Task model
backend/models/Task.js - Database connection
backend/src/config/db.js
Other components
- Browser user
- MongoDB
Connections 30
- Browser user → App and routes: uses
- App and routes → Auth context: provides session
frontend/src/App.jsx - App and routes → Protected route: guards home
frontend/src/App.jsx - App and routes → Task interface: renders home
frontend/src/App.jsx - App and routes → Login and registration: routes auth
frontend/src/App.jsx - Auth context → Axios API client: restores session
frontend/src/context/AuthContext.jsx - Task interface → Task controls: presents tasks
- Browser user → Axios API client: requests tasks
- Axios API client → HTTP app: calls API
- API startup → Runtime config: loads config
backend/src/server.js - API startup → Database connection: connects database
backend/src/server.js - API startup → User model: waits for indexes
backend/src/server.js - API startup → Task model: waits for indexes
backend/src/server.js - API startup → HTTP app: starts app
backend/src/server.js - HTTP app → Auth routes: mounts routes
backend/src/app.js - HTTP app → Task routes: mounts routes
backend/src/app.js - HTTP app → Error responses: handles errors
backend/src/app.js - Auth routes → Auth operations: dispatches auth
backend/src/routes/authRoutes.js - Auth routes → Session middleware: checks session
backend/src/routes/authRoutes.js - Task routes → Task operations: dispatches tasks
backend/src/routes/tasksRouters.js - Task routes → Session middleware: checks session
backend/src/routes/tasksRouters.js - Session middleware → User model: loads user
backend/src/middleware/auth.js - Auth operations → User model: reads and writes
backend/src/controllers/authControllers.js - Auth operations → Request validation: validates input
backend/src/controllers/authControllers.js - Task operations → Task model: queries and writes
backend/src/controllers/tasksControllers.js - Task operations → Request validation: validates input
backend/src/controllers/tasksControllers.js - Task operations → Error responses: raises errors
backend/src/controllers/tasksControllers.js - Database connection → MongoDB: connects
- User model → MongoDB: persists accounts
- Task model → MongoDB: persists tasks