How zackrip/tasksync works
This is a MERN task-management and team-collaboration application. Users register or sign in, then work in a protected dashboard to create and assign tasks, track status, receive notifications, and chat one-to-one. The backend exposes HTTP routes backed by controllers and MongoDB models; selected flows also use Redis caching/session data and Socket.io delivery. The README documents password recovery, profile uploads, and browser notifications, though their complete implementation paths are not all evidenced in the sampled source.
Main entry points: App.jsx Route application · app.js Express app · message.controller.js Message operations · task.controller.js Task operations
Components 30
Web client
- Route application
frontend/src/App.jsx - Auth screens
frontend/src/pages/Auth - Task dashboard
frontend/src/pages/TaskDashboard - Chat screens
frontend/src/pages/Chat - Notifications view
frontend/src/pages/NotificationPage.jsx - Profile view
frontend/src/pages/ProfilePage.jsx - Task service
frontend/src/services/taskServices.js - Chat service
frontend/src/services/chatService.js - User service
frontend/src/services/userService.js - HTTP client
frontend/src/services/api.js - Socket client
frontend/src/socket.js
HTTP API
- Express app
backend/src/app.js - Auth routes
backend/src/Routes/auth.routes.js - Task routes
backend/src/Routes/task.routes.js - Domain controllers
backend/src/Controllers - Authentication
backend/src/Controllers/auth.controller.js
Tasks and notifications
- Task operations
backend/src/Controllers/task.controller.js
Chat and realtime
- Message operations
backend/src/Controllers/message.controller.js - Conversation operations
backend/src/Controllers/conversation.controller.js - Socket server
backend/src/socket.js
Persistence and integrations
- User records
backend/src/Models/user.model.js - Task records
backend/src/Models/task.model.js - Notification records
backend/src/Models/notification.model.js - Conversation records
backend/src/Models/conversation.model.js - Message records
backend/src/Models/message.model.js
Other components
- Team member
- MongoDB
- Redis
- Email service
- Browser notifications
Connections 43
- Team member → Route application: uses
- Route application → Auth screens: routes to
- Route application → Task dashboard: routes to
- Route application → Chat screens: routes to
- Route application → Notifications view: routes to
- Route application → Profile view: routes to
- Auth screens → HTTP client: requests
- Task dashboard → Task service: requests
- Chat screens → Chat service: requests
- Profile view → User service: requests
- Notifications view → Task service: requests
- Task service → HTTP client: uses
- Chat service → HTTP client: uses
- User service → HTTP client: uses
- HTTP client → Express app: HTTP requests
- Express app → Auth routes: mounts
- Express app → Task routes: mounts
- Auth routes → Authentication: dispatches
- Task routes → Task operations: dispatches
- Authentication → User records: reads/writes
- Authentication → Redis: stores OTP session
- Authentication → Email service: sends recovery mail
- Task operations → Task records: reads/writes
- Task operations → Notification records: creates/reads
- Task operations → Socket server: emits updates
- Task operations → User records: reads users
- Socket client → Socket server: realtime events
- Express app → Socket server: initializes
- Chat service → Socket client: uses
- Express app → Conversation operations: mounts conversation routes
- Express app → Message operations: mounts message routes
- Conversation operations → Conversation records: reads/writes
- Message operations → Conversation records: reads/updates
- Message operations → Message records: reads/writes
- Message operations → Redis: caches messages
- Message operations → Socket server: emits chat events
- Message operations → User records: populates participants
- Task records → MongoDB: persisted in
- Notification records → MongoDB: persisted in
- User records → MongoDB: persisted in
- Message records → MongoDB: persisted in
- Conversation records → MongoDB: persisted in
- Notifications view → Browser notifications: may display native alerts