How majdalsaaty/task-management-v1 works
This is a study-planning application: users manage tasks, preferences and university commitments, then schedule study slots and review conflicts, notifications and analytics. The clearest sampled workflow is task management through the task context and API, with the backend task controller invoking the scheduling engine, which uses scheduling data and persists slots. Other major screens and backend domains are retained from the repository tree; their detailed wiring is not asserted where source excerpts were unavailable.
Main entry points: SchedulingEngine.php Scheduling engine · database.php Relational database · TaskController.php Task operations · ScheduledSlot.php Scheduled slots
Components 32
Web application
- React entry
frontend/src/main.jsx - Page router
frontend/src/router/index.jsx - Task manager
frontend/src/pages/Tasks.jsx - Task state
frontend/src/contexts/TaskContext.jsx - Scheduler
frontend/src/pages/Scheduler.jsx - Schedule timeline
frontend/src/components/Timeline/Timeline.jsx - Study preferences
frontend/src/pages/Preferences.jsx - University schedule
frontend/src/pages/UniversitySchedule.jsx - Conflict review
frontend/src/pages/Conflicts.jsx - Analytics
frontend/src/pages/Analytics.jsx - Dashboard
frontend/src/pages/Dashboard.jsx - HTTP API client
frontend/src/services/api.js
Planning API
- Task operations
backend/app/Http/Controllers/API/TaskController.php - Scheduling engine
backend/app/Services/SchedulingEngine.php - Scheduled slots
backend/app/Http/Controllers/API/ScheduledSlotController.php - University schedule API
backend/app/Http/Controllers/API/UniversityScheduleController.php - Overlap validation
backend/app/Services/OverlapHelper.php
Accounts and alerts
- Sign in and registration
frontend/src/pages/Auth.jsx - Authentication state
frontend/src/contexts/AuthContext.jsx - Authentication API
backend/app/Http/Controllers/API/AuthController.php - Notifications
frontend/src/pages/Notifications.jsx - Notification state
frontend/src/contexts/NotificationContext.jsx - Notification API
backend/app/Http/Controllers/API/NotificationController.php
Application data
- Tasks
backend/app/Models/Task.php - Scheduled slots
backend/app/Models/ScheduledSlot.php - Daily preferences
backend/app/Models/UserDailyPreference.php - University commitments
backend/app/Models/UniversitySchedule.php - Conflict logs
backend/app/Models/ConflictLog.php - Notifications
backend/app/Models/Notification.php - User accounts
backend/app/Models/User.php - Relational database
backend/config/database.php
Other components
- Student
Connections 26
- Student → React entry: opens app
- React entry → Page router: mounts routes
- Task manager → Task state: uses task state
- Student → Task manager: manages tasks
- Student → Scheduler: plans study
- Scheduler → Schedule timeline: displays schedule
- Task operations → Scheduling engine: invokes scheduling
- Task operations → Daily preferences: loads preferences
- Task operations → Notifications: creates alerts
- Scheduling engine → Tasks: reads tasks
- Scheduling engine → Scheduled slots: reads and writes slots
- Scheduling engine → Daily preferences: reads preferences
- Scheduling engine → University commitments: reads commitments
- Scheduling engine → Conflict logs: refreshes conflicts
- Scheduled slots → Scheduled slots: manages slots
- University schedule API → Overlap validation: checks overlap
- University schedule API → University commitments: manages commitments
- Authentication API → User accounts: manages accounts
- Notification API → Notifications: manages notifications
- User accounts → Relational database: persists
- Tasks → Relational database: persists
- Scheduled slots → Relational database: persists
- Daily preferences → Relational database: persists
- University commitments → Relational database: persists
- Conflict logs → Relational database: persists
- Notifications → Relational database: persists