How kiet-trntn/event_management_system works
This is an event-management application for administrators, staff, and public event registrants. The main workflow is managing events and members, assigning work, and tracking submissions; users also have calendar, registration, notification, and messaging capabilities. The React client routes role-specific screens to an Express API, whose controllers use MySQL. Authentication and role checks protect API routes, while background jobs handle deadline reminders and event-status updates. Several domain modules are present in the tree but were not sampled, so their internal connections are left unasserted.
Main entry points: app.js Express API · App.jsx Role-based routes · db.js MySQL pool · notificationController.js Notifications
Components 23
Web client
- Role-based routes
client/src/App.jsx - Admin workspace
client/src/pages/admin - Staff workspace
client/src/pages/staff - Public registration
client/src/pages/public/RegisterEvent.jsx - Chat and trash
client/src/pages/Chat.jsx
API and access
- Express API
server/src/app.js - Authentication and roles
server/src/middlewares/authMiddleware.js - MySQL pool
server/src/config/db.js
Events and people
- Accounts and profiles
server/src/controllers/userController.js - Event management
server/src/controllers/eventController.js - Event membership
server/src/controllers/eventMemberController.js - Event registration
server/src/controllers/eventRegistrationController.js
Tasks and tracking
- Task management
server/src/controllers/taskController.js - Task submissions
server/src/controllers/taskSubmissionController.js - Event timelines
server/src/controllers/timelineController.js - Work calendar
server/src/controllers/calendarController.js - Attachments
server/src/controllers/attachmentController.js - Reports
server/src/controllers/reportController.js
Communication and services
- Notifications
server/src/controllers/notificationController.js - Messages and friends
server/src/controllers/directMessageController.js - Realtime sockets
server/src/socket/socket.js - Reminder and status jobs
server/src/jobs/deadlineReminderJob.js
Other components
- Admin, staff, registrant
Connections 33
- Admin, staff, registrant → Role-based routes: uses
client/src/App.jsx - Role-based routes → Admin workspace: routes to
client/src/App.jsx - Role-based routes → Staff workspace: routes to
client/src/App.jsx - Role-based routes → Public registration: routes to
client/src/App.jsx - Role-based routes → Chat and trash: routes to
client/src/App.jsx - Role-based routes → Express API: calls API
- Express API → Authentication and roles: uses on routes
- Express API → Accounts and profiles: routes requests
server/src/app.js - Express API → Event management: routes requests
server/src/app.js - Express API → Event membership: routes requests
server/src/app.js - Express API → Event registration: routes requests
server/src/app.js - Express API → Task management: routes requests
server/src/app.js - Express API → Task submissions: routes requests
server/src/app.js - Express API → Event timelines: routes requests
server/src/app.js - Express API → Work calendar: routes requests
server/src/app.js - Express API → Attachments: routes requests
server/src/app.js - Express API → Reports: routes requests
server/src/app.js - Express API → Notifications: routes requests
server/src/app.js - Express API → Messages and friends: routes requests
server/src/app.js - Event management → MySQL pool: queries
server/src/controllers/eventController.js - Event management → Notifications: creates notices
server/src/controllers/eventController.js - Task management → MySQL pool: queries
server/src/controllers/taskController.js - Task management → Notifications: creates notices
server/src/controllers/taskController.js - Task submissions → MySQL pool: queries
server/src/controllers/taskSubmissionController.js - Task submissions → Notifications: creates notices
server/src/controllers/taskSubmissionController.js - Event timelines → MySQL pool: queries
server/src/controllers/timelineController.js - Authentication and roles → MySQL pool: checks user
server/src/middlewares/authMiddleware.js - Reminder and status jobs → MySQL pool: checks deadlines
server/src/jobs/deadlineReminderJob.js - Reminder and status jobs → Notifications: sends reminders
server/src/jobs/deadlineReminderJob.js - Express API → Reminder and status jobs: starts jobs
server/server.js - Express API → Realtime sockets: initializes
server/server.js - Realtime sockets → MySQL pool: queries
server/src/socket/socket.js - Notifications → Realtime sockets: emits updates