How joaogt01/synchro works
Agendamento is a clinic appointment-management application with a React frontend and Spring Boot API. The main workflow is an authorized staff member or professional managing patient and professional records, setting recurring availability or blocked slots, then creating and progressing a consultation through validation, status history, and post-commit notification. Authentication and role/ownership checks span the API. The README documents major capabilities; sampled service/controller excerpts support key call edges, while frontend page-to-API wiring and some backend service details were not sampled and are left unspecified.
Main entry points: App.tsx Route application · AuthController.java Authentication endpoints · ConsultaService.java Consultation lifecycle · ProfissionalRepository.java People and schedule data
Components 28
Web application
- Route application
frontend/src/App.tsx - Login and registration
frontend/src/pages/auth/LoginPage.tsx - Consultation screens
frontend/src/pages/consultas/ConsultasListPage.tsx - Patient screens
frontend/src/pages/pacientes/PacientesListPage.tsx - Professional screens
frontend/src/pages/profissionais/ProfissionaisListPage.tsx
Identity and access
- Authentication endpoints
src/main/java/com/projetos/agendamento/autenticacao/controller/AuthController.java - Admin user endpoint
src/main/java/com/projetos/agendamento/autenticacao/controller/AdminUsuarioController.java - User registration
src/main/java/com/projetos/agendamento/autenticacao/service/UsuarioService.java - Refresh sessions
src/main/java/com/projetos/agendamento/autenticacao/service/RefreshTokenService.java - JWT and cookies
src/main/java/com/projetos/agendamento/autenticacao/security/JwtService.java - Request security
src/main/java/com/projetos/agendamento/autenticacao/security/SecurityConfig.java - User and token store
src/main/java/com/projetos/agendamento/autenticacao/repository/UsuarioRepository.java
People and schedules
- Patient endpoints
src/main/java/com/projetos/agendamento/paciente/controller/PacienteController.java - Patient records
src/main/java/com/projetos/agendamento/paciente/service/PacienteService.java - Professional endpoints
src/main/java/com/projetos/agendamento/profissional/controller/ProfissionalController.java - Professional records
src/main/java/com/projetos/agendamento/profissional/service/ProfissionalService.java - Availability and blocks
src/main/java/com/projetos/agendamento/profissional/controller/DisponibilidadeController.java - Availability management
src/main/java/com/projetos/agendamento/profissional/service/DisponibilidadeService.java - Blocked time management
src/main/java/com/projetos/agendamento/profissional/service/SlotBloqueadoService.java - People and schedule data
src/main/java/com/projetos/agendamento/profissional/repository/ProfissionalRepository.java
Consultation lifecycle
- Consultation endpoints
src/main/java/com/projetos/agendamento/consulta/controller/ConsultaController.java - Consultation lifecycle
src/main/java/com/projetos/agendamento/consulta/service/ConsultaService.java - Booking validation
src/main/java/com/projetos/agendamento/consulta/service/OrquestradorValidacaoAgendamento.java - Consultation and history
src/main/java/com/projetos/agendamento/consulta/repository/ConsultaRepository.java - Booked consultation event
src/main/java/com/projetos/agendamento/consulta/evento/ConsultaAgendadaEvento.java
Notifications
- Notification listener
src/main/java/com/projetos/agendamento/notificacao/NotificacaoConsultaListener.java - Application log
Other components
- Clinic user
Connections 29
- Clinic user → Route application: uses
- Route application → Login and registration: routes
- Route application → Consultation screens: routes
- Route application → Patient screens: routes
- Route application → Professional screens: routes
- Login and registration → Authentication endpoints: authenticates
- Authentication endpoints → User registration: registers
- Authentication endpoints → Refresh sessions: manages tokens
- Authentication endpoints → JWT and cookies: issues JWT
- Authentication endpoints → Request security: authenticates
- Admin user endpoint → User registration: creates users
- User registration → User and token store: persists users
- Refresh sessions → User and token store: persists tokens
- Request security → JWT and cookies: validates JWT
- Professional endpoints → Professional records: manages professionals
- Professional records → People and schedule data: reads and writes
- Patient endpoints → Patient records: manages patients
- Patient records → People and schedule data: reads and writes
- Availability and blocks → Availability management: manages availability
- Availability and blocks → Blocked time management: manages blocks
- Availability management → People and schedule data: reads and writes
- Blocked time management → People and schedule data: reads and writes
- Consultation screens → Consultation endpoints: manages bookings
- Consultation endpoints → Consultation lifecycle: dispatches requests
- Consultation lifecycle → Booking validation: validates booking
- Consultation lifecycle → Consultation and history: persists and queries
- Consultation lifecycle → Booked consultation event: publishes after booking
- Notification listener → Booked consultation event: handles after commit
- Notification listener → Application log: records notification