How vedhavyav/co-organizer works
This is a planner and learning-progress web app with account access, tasks, calendar events, playlists, and learning pages. Users enter through the React app, authenticate or sign up, then use protected dashboard features; event and task actions reach backend routes and controllers that use MySQL. The graph preserves playlist and learning-progress capabilities visible in the tree, though their full wiring is not shown. Some frontend-to-backend links are dashed because the available excerpts do not establish the complete HTTP route mapping.
Main entry points: App.jsx App routing · db.js MySQL pool · server.js HTTP server · eventApi.js Event API client
Components 26
Web application
- App routing
frontend/src/App.jsx
Identity
- Auth state
frontend/src/context/AuthContext.jsx - Login and signup
frontend/src/pages/Login.jsx - OAuth callback
frontend/src/pages/OAuthHandler.jsx
Planning features
- Dashboard
frontend/src/pages/Dashboard.jsx - Task manager
frontend/src/pages/Tasks.jsx - Calendar
frontend/src/pages/Calendar.jsx - Event details
frontend/src/pages/Event.jsx - Event editor
frontend/src/pages/AddEvent.jsx - Event API client
frontend/src/api/eventApi.js - Playlist editor
frontend/src/pages/AddPlaylist.jsx - Playlist player
frontend/src/pages/PlaylistPlayer.jsx - Learning progress
frontend/src/pages/LearningProgress.jsx
Backend services
- HTTP server
backend/server.js - Auth routes
backend/routes/authRoutes.js - Account logic
backend/controllers/authController.js - Google sign-in
backend/config/passport.js - Task routes
backend/routes/tasksRoutes.js - Task logic
backend/controllers/taskController.js - Event routes
backend/routes/calendarRoutes.js - Event logic
backend/controllers/calendarController.js - Playlist routes
backend/routes/playlistRoutes.js - Playlist logic
backend/controllers/playlistController.js - MySQL pool
backend/db.js
Other components
- User
- Google OAuth
Connections 31
- User → App routing: uses
frontend/src/App.jsx - App routing → Login and signup: routes to
frontend/src/App.jsx - App routing → Dashboard: protects and routes
frontend/src/App.jsx - App routing → Task manager: protects and routes
frontend/src/App.jsx - App routing → Calendar: protects and routes
frontend/src/App.jsx - App routing → Event details: protects and routes
frontend/src/App.jsx - App routing → Event editor: protects and routes
frontend/src/App.jsx - App routing → OAuth callback: routes to
frontend/src/App.jsx - Login and signup → Auth state: uses
frontend/src/pages/Login.jsx - OAuth callback → Auth state: stores login
frontend/src/pages/OAuthHandler.jsx - HTTP server → Auth routes: mounts
backend/server.js - HTTP server → Task routes: mounts
backend/server.js - HTTP server → Event routes: mounts
backend/server.js - Auth routes → Account logic: dispatches
backend/routes/authRoutes.js - Auth routes → Google sign-in: invokes
backend/routes/authRoutes.js - Google OAuth → Google sign-in: authenticates with
- Google sign-in → MySQL pool: reads and writes
backend/config/passport.js - Account logic → MySQL pool: reads and writes
backend/controllers/authController.js - Task routes → Task logic: dispatches
backend/routes/tasksRoutes.js - Task routes → Auth state: requires token from
- Task logic → MySQL pool: reads and writes
backend/controllers/taskController.js - Event routes → Event logic: dispatches
backend/routes/calendarRoutes.js - Event logic → MySQL pool: reads and writes
backend/controllers/calendarController.js - Calendar → Event API client: requests events via
frontend/src/pages/Calendar.jsx - Event details → Event API client: requests events via
frontend/src/pages/Event.jsx - Event editor → Event API client: submits events via
frontend/src/pages/AddEvent.jsx - Event API client → HTTP server: calls HTTP API
- Playlist editor → Playlist routes: uses API
- Playlist player → Playlist routes: uses API
- Playlist routes → Playlist logic: dispatches
backend/routes/playlistRoutes.js - Playlist logic → MySQL pool: reads and writes
backend/controllers/playlistController.js