How gnelshahnazaryan/eventhub-api works
EventHub is an Express API for account access and event participation: clients authenticate, browse or manage events, join or leave them, and submit or manage attendee reviews. Requests pass through API routing and middleware to controllers, services, repositories, and MongoDB models. The sampled source supports detailed authentication, event, and review flows; user-management internals and some route wiring are represented only at their tree-supported module level.
Main entry points: user.repository.js User repository · index.js API routes · event.repository.js Event repository · auth.routes.js Auth routes
Components 25
API Entry
- Express app
src/app.js - API routes
src/routes/index.js - Database connection
src/config/db.js
Identity
- Auth routes
src/routes/auth.routes.js - Auth controller
src/controllers/auth.controller.js - Auth service
src/services/auth.service.js - Authentication middleware
src/middlewares/auth.middleware.js - User routes
src/routes/user.routes.js - User controller
src/controllers/user.controller.js - User service
src/services/user.service.js
Events
- Event routes
src/routes/event.routes.js - Event controller
src/controllers/event.controller.js - Event service
src/services/event.service.js
Reviews
- Review controller
src/controllers/review.controller.js - Review routes
src/routes/review.routes.js - Review service
src/services/review.service.js
Persistence
- User repository
src/repositories/user.repository.js - Event repository
src/repositories/event.repository.js - Review repository
src/repositories/review.repository.js - User model
src/models/user.model.js - Event model
src/models/event.model.js - Attendance model
src/models/eventAttendee.model.js - Review model
src/models/review.model.js
Other components
- API client
- MongoDB
Connections 27
- API client → Express app: sends requests
- Express app → API routes: mounts API
- API routes → Auth routes: dispatches
- API routes → Event routes: dispatches
- API routes → User routes: dispatches
- Event routes → Review controller: dispatches reviews
- Auth routes → Auth controller: dispatches
- Auth routes → Authentication middleware: authenticates logout
- Auth controller → Auth service: calls
- Auth service → User repository: reads and updates
- Authentication middleware → User repository: checks user
- User routes → User controller: dispatches
- User controller → User service: calls
- User service → User repository: uses
- Event routes → Event controller: dispatches
- Event controller → Event service: calls
- Event service → Event repository: reads and changes events
- Event service → User repository: checks organizer
- Event repository → Event model: queries
- Event repository → Attendance model: manages attendance
- Review routes → Review controller: dispatches
- Review controller → Review service: calls
- Review service → Event repository: checks event attendance
- Review service → Review repository: reads and changes reviews
- Review repository → Review model: queries
- User repository → User model: queries
- Database connection → MongoDB: connects