How carloslimamecwide/barber-template works
Barbearia is a multi-professional appointment booking and management application. Customers submit public bookings; staff manage the agenda and business settings; scheduled jobs extend recurring appointments and process reminders and email notifications. The graph preserves the documented management, reporting, audit, and notification capabilities. Edges are limited to relationships visible in excerpts, indexed references, or the README; unsampled UI-to-route wiring is shown only as unverified where useful.
Main entry points: prisma.ts PostgreSQL database · agendamentos/route.ts Booking API · api Business management APIs · cron/route.ts Scheduled job API
Components 28
Booking and availability
- Booking API
src/app/api/agendamentos/route.ts - Appointment logic
src/lib/agendamentos.ts - Availability rules
src/lib/disponibilidade.ts - Schedule calculations
src/lib/horarios.ts - Recurring series API
src/app/api/series/route.ts - Series extension
src/lib/series.ts
Barbershop operations
- Business management APIs
src/app/api - Booking configuration
src/lib/configuracao.ts - Statistics API
src/app/api/estatisticas/route.ts - Audit logging
src/lib/audit.ts
Access and API
- Authentication API
src/app/api/auth - Authorization
src/lib/auth.ts - Session handling
src/lib/session.ts - Request validation
src/lib/validations.ts - API error responses
src/lib/api.ts
Persistence and jobs
- Notification queue
src/lib/notificacoes.ts - Email delivery
src/lib/email.ts - Scheduled job API
src/app/api/cron/route.ts - PostgreSQL database
src/lib/prisma.ts - Health and readiness
src/app/api/health/route.ts
User interfaces
- Public booking form
src/components/landing/booking-form.tsx - Booking management
src/components/reagendar/gestao-marcacao.tsx - Reschedule form
src/components/reagendar/reagendar-form.tsx - Management dashboard
src/app/dashboard - Login form
src/components/login/login-form.tsx
Other components
- Customer
- Staff
- Cron scheduler
Connections 31
- Customer → Public booking form: requests booking
- Public booking form → Booking API: submits booking
- Booking API → Appointment logic: creates appointment
src/app/api/agendamentos/route.ts - Appointment logic → Availability rules: validates slot
src/lib/agendamentos.ts - Availability rules → Schedule calculations: generates slots
src/lib/disponibilidade.ts - Appointment logic → Notification queue: queues confirmation
src/lib/agendamentos.ts - Booking API → Request validation: validates request
src/app/api/agendamentos/route.ts - Booking API → PostgreSQL database: reads and writes
src/app/api/agendamentos/route.ts - Booking API → Audit logging: records action
src/app/api/agendamentos/route.ts - Recurring series API → Series extension: manages series
src/app/api/series/route.ts - Series extension → Appointment logic: creates occurrences
src/lib/series.ts - Staff → Management dashboard: manages operations
- Management dashboard → Business management APIs: uses management APIs
- Business management APIs → PostgreSQL database: reads and writes
src/app/api/clientes/route.ts - Business management APIs → Authorization: checks access
src/app/api/clientes/route.ts - Business management APIs → Audit logging: records changes
src/app/api/configuracao/route.ts - Business management APIs → Booking configuration: reads settings
src/app/api/configuracao/route.ts - Statistics API → PostgreSQL database: queries metrics
src/app/api/estatisticas/route.ts - Login form → Authentication API: submits credentials
- Authentication API → Authorization: verifies credentials
- Authorization → Session handling: reads session
src/lib/auth.ts - Authorization → PostgreSQL database: checks user
src/lib/auth.ts - Reschedule form → Booking management: supports rescheduling
- Customer → Booking management: manages booking
- Cron scheduler → Scheduled job API: triggers job
- Scheduled job API → Series extension: extends series
src/app/api/cron/route.ts - Scheduled job API → Notification queue: processes queue
src/app/api/cron/route.ts - Scheduled job API → Booking configuration: loads reminder settings
src/app/api/cron/route.ts - Scheduled job API → PostgreSQL database: records job state
src/app/api/cron/route.ts - Notification queue → Email delivery: delivers email
- Health and readiness → PostgreSQL database: checks readiness