How santiagoag0/quindiostay works
QuindioStay is a tourism operations platform with an Angular interface and Spring API backed by MySQL. Staff or travelers authenticate, browse tours and scheduled departures, create reservations with participant rules, and manage payments; operators also administer providers, plans, guides, customers, notifications, and reports. The diagram preserves those documented product areas, but sampled backend evidence is limited mainly to authentication, reservation, and reporting; other service links are documented or left unverified.
Main entry points: controller REST controllers · ReservaService.java Reservations · app.routes.ts Role-based routes · AuthService.java Authentication
Components 23
Web client
- Angular application
frontend/src/app/app.component.ts - Role-based routes
frontend/src/app/app.routes.ts - Login and token
frontend/src/app/core/auth/auth.service.ts - Operations screens
frontend/src/app/features
Identity and access
- Authentication
backend/src/main/java/co/edu/uniquindio/quindiostay/service/AuthService.java - JWT services
backend/src/main/java/co/edu/uniquindio/quindiostay/security/JwtService.java - User principal
backend/src/main/java/co/edu/uniquindio/quindiostay/security/UsuarioPrincipal.java - JWT request security
backend/src/main/java/co/edu/uniquindio/quindiostay/security/JwtAuthenticationFilter.java
Tour operations
- REST controllers
backend/src/main/java/co/edu/uniquindio/quindiostay/controller - Tour catalog
backend/src/main/java/co/edu/uniquindio/quindiostay/domain/entity/tours/Tour.java - Scheduled departures
backend/src/main/java/co/edu/uniquindio/quindiostay/domain/entity/tours/SalidaTour.java - Reservations
backend/src/main/java/co/edu/uniquindio/quindiostay/service/ReservaService.java - Participants
backend/src/main/java/co/edu/uniquindio/quindiostay/domain/entity/tours/Participante.java - Providers and plans
backend/src/main/java/co/edu/uniquindio/quindiostay/service/PrestadorService.java - Guides and languages
backend/src/main/java/co/edu/uniquindio/quindiostay/service/GuiaService.java - MySQL database
backend/src/main/java/co/edu/uniquindio/quindiostay/repository
Traveler services
- Customer profiles
backend/src/main/java/co/edu/uniquindio/quindiostay/domain/entity/nucleo/Cliente.java - Partial payments
backend/src/main/java/co/edu/uniquindio/quindiostay/service/PagoService.java - Notifications
backend/src/main/java/co/edu/uniquindio/quindiostay/service/NotificacionService.java
Reporting
- Operational reports
backend/src/main/java/co/edu/uniquindio/quindiostay/service/ReporteService.java - Report API
backend/src/main/java/co/edu/uniquindio/quindiostay/controller/ReporteController.java - PDF export
backend/src/main/java/co/edu/uniquindio/quindiostay/report/PdfExportador.java
Other components
- Staff / traveler
Connections 24
- Staff / traveler → Angular application: uses
README.md - Angular application → Role-based routes: loads routes
- Role-based routes → Login and token: routes login
frontend/src/app/app.routes.ts - Role-based routes → Operations screens: routes features
frontend/src/app/app.routes.ts - Login and token → REST controllers: submits credentials
- REST controllers → Authentication: delegates authentication
- Authentication → JWT services: generates token
backend/src/main/java/co/edu/uniquindio/quindiostay/service/AuthService.java - Authentication → User principal: creates principal
backend/src/main/java/co/edu/uniquindio/quindiostay/service/AuthService.java - JWT request security → JWT services: validates token
- Operations screens → REST controllers: calls API
- REST controllers → Reservations: delegates booking
- Reservations → MySQL database: reads and writes
backend/src/main/java/co/edu/uniquindio/quindiostay/service/ReservaService.java - Reservations → Participants: saves participants
backend/src/main/java/co/edu/uniquindio/quindiostay/service/ReservaService.java - Reservations → Notifications: schedules reminders
backend/src/main/java/co/edu/uniquindio/quindiostay/service/ReservaService.java - Report API → Operational reports: requests reports
backend/src/main/java/co/edu/uniquindio/quindiostay/controller/ReporteController.java - Operational reports → PDF export: exports PDF
backend/src/main/java/co/edu/uniquindio/quindiostay/service/ReporteService.java - Operational reports → MySQL database: queries reporting data
backend/src/main/java/co/edu/uniquindio/quindiostay/service/ReporteService.java - REST controllers → Tour catalog: manages tours
backend/src/main/java/co/edu/uniquindio/quindiostay/controller/SalidaTourController.java - REST controllers → Scheduled departures: manages departures
- REST controllers → Providers and plans: manages providers
- REST controllers → Guides and languages: manages guides
- REST controllers → Customer profiles: manages customers
- REST controllers → Partial payments: manages payments
- REST controllers → Notifications: manages notifications