How bjonne696/back-end-exam-project-1 works
VEM is a virtual event management system: users interact with an Express/EJS web client, whose browser-side scripts call a REST API backed by MySQL. The principal workflow covers authentication, event discovery and management, speaker assignment, and attendee registration; administrators also initialize imported data and manage organizers and event types. The README documents these capabilities, while sampled source confirms API composition, login, search, attendee registration, event routes, and model associations. Unsampled domain internals are represented only at their documented source paths.
Main entry points: controllers HTTP controllers · app.js Web app · javascripts Browser scripts · index.js Model registry
Components 20
Web client
- Web app
Front-end/app.js - Public pages
Front-end/routes/default.js - Admin pages
Front-end/routes/admin.js - Browser scripts
Front-end/public/javascripts
REST API
- API app
Back-end/app.js - Authentication
Back-end/services/authService.js - Resource routes
Back-end/routes - HTTP controllers
Back-end/controllers
Event domains
- Data initialization
Back-end/services/initService.js - Event management
Back-end/services/eventService.js - Event types
Back-end/services/eventTypeService.js - Speaker management
Back-end/services/speakerService.js - Attendee registration
Back-end/services/attendeeService.js - Organizer management
Back-end/services/organizerService.js - Event search
Back-end/services/searchService.js - Event statistics
Back-end/services/statsService.js
Persistence
- Model registry
Back-end/models/index.js - MySQL database
Back-end/config/database.js
Other components
- Browser user
- Noroff source API
Connections 21
- Browser user → Web app: opens pages
- Web app → Public pages: dispatches
- Web app → Admin pages: dispatches
- Public pages → Browser scripts: serves client
- Admin pages → Browser scripts: serves client
- Browser scripts → API app: Axios requests
- API app → Resource routes: mounts routes
- Resource routes → HTTP controllers: dispatches
- HTTP controllers → Authentication: calls login
- HTTP controllers → Data initialization: calls initialization
- HTTP controllers → Event management: calls event logic
- HTTP controllers → Event types: calls type logic
- HTTP controllers → Speaker management: calls speaker logic
- HTTP controllers → Attendee registration: calls registration
- HTTP controllers → Organizer management: calls organizer logic
- HTTP controllers → Event search: calls search
- HTTP controllers → Event statistics: calls statistics
- Authentication → Model registry: queries users
- Event search → Model registry: queries events
- Data initialization → Noroff source API: imports source data
- Model registry → MySQL database: reads and writes