How akshith0412/eventhub works
EventHub is a multi-role event booking and hosting platform. Customers register and verify accounts, browse or search events, book or cancel seats, and view history; creators pass admin verification before managing events and check-ins; admins moderate creators and listings. React dashboards call the Express API, whose controllers coordinate persistence, caching, queued email, and documented real-time updates. The tree and README support these product branches, but several client pages and backend subsystems were not sampled, so uncertain implementation links are omitted.
Main entry points: eventController.js Event controller · App.jsx Role dashboards · api.js HTTP client · app.js Express app
Components 26
React client
- Role dashboards
frontend/src/App.jsx - Customer dashboard
frontend/src/pages/Customer/CustomerDashboard.jsx - Creator dashboard
frontend/src/pages/Creator/CreatorDashboard.jsx - Admin dashboard
frontend/src/pages/Admin/AdminDashboard.jsx - Auth pages
frontend/src/pages/Auth - HTTP client
frontend/src/api.js - Socket client
frontend/src/socket.js
API and identity
- Express app
backend/app.js - Auth routes
backend/routes/authRoutes.js - Auth controller
backend/controllers/authController.js - Account models
backend/models - OTP service
backend/services/otpService.js
Event operations
- Event routes
backend/routes/eventRoutes.js - Event controller
backend/controllers/eventController.js - Event and booking models
backend/models/eventsModel.js - Admin routes
backend/routes/adminRoutes.js - Admin controller
backend/controllers/adminController.js
Platform services
- MongoDB
- Cache service
backend/services/cacheService.js - Redis
backend/config/redis.js - Socket.IO server
backend/config/socket.js
Async messaging
- Email queue
backend/queues/emailQueue.js - Email worker
backend/workers/emailWorker.js - Mail service
backend/services/mailService.js
Other components
- Platform users
- SMTP provider
Connections 35
- Platform users → Role dashboards: use dashboards
- Role dashboards → Auth pages: navigate to
- Role dashboards → Customer dashboard: open role view
- Role dashboards → Creator dashboard: open role view
- Role dashboards → Admin dashboard: open role view
- Auth pages → HTTP client: submit requests
- Customer dashboard → HTTP client: request event actions
- Creator dashboard → HTTP client: request event actions
- Admin dashboard → HTTP client: request moderation
- Creator dashboard → Socket client: receive live updates
- HTTP client → Express app: send HTTP requests
- Express app → Auth routes: mount routes
- Express app → Event routes: mount routes
- Express app → Admin routes: mount routes
- Auth routes → Auth controller: dispatch handlers
- Auth controller → OTP service: store or verify OTP
- Auth controller → Account models: read and write accounts
- Auth controller → Email queue: enqueue mail jobs
- OTP service → Redis: store OTP state
- Event routes → Event controller: dispatch handlers
- Event controller → Event and booking models: read and update records
- Event controller → MongoDB: run transactions
- Event controller → Cache service: read and invalidate cache
- Cache service → Redis: get and set keys
- Event controller → Email queue: enqueue notifications
- Admin routes → Admin controller: dispatch handlers
- Admin controller → Event and booking models: moderate events
- Admin controller → Account models: read and verify accounts
- Admin controller → Cache service: invalidate listings
- Event controller → Socket.IO server: push activity updates
- Socket.IO server → Socket client: emit creator updates
- Email queue → Redis: persist jobs
- Email worker → Redis: consume jobs
- Email worker → Mail service: dispatch email type
- Mail service → SMTP provider: send email