How shawnabaco/psa-appointment-system works
This Laravel application manages National ID appointments, from public service discovery and availability checks through booking, confirmation, and staff processing. Administrators configure slot capacity and working days, manage users, and review reports; staff and operators handle appointments, clients, and reporting. The sampled booking controller reads availability rules and creates appointments, while MailService sends confirmation messages. The README is the generic Laravel template, so product capabilities are inferred from the source tree and indexed controller references; unsampled controller internals and runtime wiring are not verified.
Main entry points: web.php Web routes · Appointment.php Appointments · AppointmentController.php Public booking · TimeSlot.php Schedule rules and slots
Components 22
Access and Public Entry
- Web routes
routes/web.php - Public pages
app/Http/Controllers/Web/PageController.php - Authentication
app/Http/Controllers/Auth/LoginController.php - Admin access
app/Http/Controllers/Admin/UserController.php
Booking and Scheduling
- Public booking
app/Http/Controllers/Client/AppointmentController.php - Slot configuration
app/Http/Controllers/Admin/SlotController.php - Calendar management
app/Http/Controllers/Admin/CalendarController.php - Booking settings
app/Http/Controllers/Admin/SettingsController.php - Mail and confirmations
app/Services/MailService.php
Appointment Operations
- Staff appointments
app/Http/Controllers/Staff/AppointmentController.php - Operator appointments
app/Http/Controllers/Operator/OAppointmentController.php - Client records
app/Http/Controllers/Staff/ClientController.php - Staff reports
app/Http/Controllers/Staff/ReportsController.php - Operator reports
app/Http/Controllers/Operator/OReportsController.php - Admin reports
app/Http/Controllers/Admin/ReportController.php
Shared Domain Data
- Appointments
app/Models/Appointment.php - Appointment clients
app/Models/AppointmentClient.php - Schedule rules and slots
app/Models/TimeSlot.php - Services and requirements
app/Models/Service.php - Users and roles
app/Models/User.php
Other components
- Public visitor
- Staff user
Connections 33
- Public visitor → Web routes: requests pages
routes/web.php - Staff user → Web routes: requests tools
routes/web.php - Web routes → Public pages: routes to
routes/web.php - Web routes → Authentication: routes to
routes/web.php - Web routes → Public booking: routes to
routes/web.php - Web routes → Slot configuration: routes to
routes/web.php - Web routes → Calendar management: routes to
routes/web.php - Web routes → Booking settings: routes to
routes/web.php - Web routes → Admin access: routes to
routes/web.php - Web routes → Staff appointments: routes to
routes/web.php - Web routes → Operator appointments: routes to
routes/web.php - Web routes → Client records: routes to
routes/web.php - Web routes → Staff reports: routes to
routes/web.php - Web routes → Operator reports: routes to
routes/web.php - Web routes → Admin reports: routes to
routes/web.php - Public booking → Appointments: creates and queries
app/Http/Controllers/Client/AppointmentController.php - Public booking → Schedule rules and slots: checks availability
app/Http/Controllers/Client/AppointmentController.php - Public booking → Services and requirements: loads requirements
app/Http/Controllers/Client/AppointmentController.php - Public booking → Mail and confirmations: sends confirmation
app/Http/Controllers/Client/AppointmentController.php - Slot configuration → Schedule rules and slots: configures capacity
app/Http/Controllers/Admin/SlotController.php - Calendar management → Appointments: reads calendar data
app/Http/Controllers/Admin/CalendarController.php - Calendar management → Schedule rules and slots: reads slot rules
app/Http/Controllers/Admin/CalendarController.php - Booking settings → Schedule rules and slots: updates schedule
app/Http/Controllers/Admin/SettingsController.php - Booking settings → Mail and confirmations: configures mail
app/Http/Controllers/Admin/SettingsController.php - Admin access → Users and roles: manages accounts
app/Http/Controllers/Admin/UserController.php - Staff appointments → Appointments: manages appointments
app/Http/Controllers/Staff/AppointmentController.php - Operator appointments → Appointments: manages appointments
app/Http/Controllers/Operator/OAppointmentController.php - Client records → Appointment clients: manages clients
- Staff reports → Appointments: queries activity
app/Http/Controllers/Staff/ReportsController.php - Operator reports → Appointments: queries activity
app/Http/Controllers/Operator/OReportsController.php - Admin reports → Appointments: queries activity
app/Http/Controllers/Admin/ReportController.php - Appointments → Appointment clients: has clients
app/Models/Appointment.php - Appointments → Schedule rules and slots: uses time slot
app/Models/Appointment.php