How astern22/piedrazulmonolitomodular works
Piedrazul is a web-based medical-practice management system: users authenticate and manage patients, professionals, specialties and weekly availability, then consult open slots and book or review appointments. Its Vue frontend communicates with a Spring REST API; the backend is organized as a modular monolith with service, presentation and persistence layers, backed by PostgreSQL. The sampled sources show several service-to-repository and cross-domain calls. Other feature modules are included from the tree and README, but their internal calls were not sampled.
Main entry points: AppointmentService.java Appointments and history · ProfessionalService.java Professionals · AvailableSlotService.java Available slots · App.vue Vue application
Components 17
Web frontend
- Vue application
frontend/src/App.vue - Auth state
frontend/src/composables/useAuth.js - API client
frontend/src/api/client.js - Feature API services
frontend/src/api
Identity and access
- Authentication
src/main/java/co/edu/unicauca/piedrazul/users/application - Users and roles
src/main/java/co/edu/unicauca/piedrazul/users/infrastructure/persistence/UserEntity.java - JWT security
src/main/java/co/edu/unicauca/piedrazul/security
Care management
- Patient management
src/main/java/co/edu/unicauca/piedrazul/patients/application/PatientService.java - Patient records
src/main/java/co/edu/unicauca/piedrazul/patients/infrastructure/persistence/PatientEntity.java - Professionals
src/main/java/co/edu/unicauca/piedrazul/professionals/application/ProfessionalService.java - Specialties
src/main/java/co/edu/unicauca/piedrazul/professionals/application/SpecialtyService.java
Scheduling and appointments
- Weekly availability
src/main/java/co/edu/unicauca/piedrazul/scheduling/application/WeeklyAvailabilityService.java - Availability records
src/main/java/co/edu/unicauca/piedrazul/scheduling/infrastructure/persistence/WeeklyAvailabilityEntity.java - Available slots
src/main/java/co/edu/unicauca/piedrazul/scheduling/application/AvailableSlotService.java - Appointments and history
src/main/java/co/edu/unicauca/piedrazul/appointments/application/AppointmentService.java - Appointment records
src/main/java/co/edu/unicauca/piedrazul/appointments/infrastructure/persistence/AppointmentEntity.java
Other components
- User
Connections 17
- User → Vue application: uses
README.md - Vue application → Auth state: reads auth
frontend/src/App.vue - Vue application → Feature API services: uses features
- Feature API services → API client: sends requests
frontend/src/api/appointment.service.js - API client → JWT security: sends JWT
- Authentication → Users and roles: reads and writes
src/main/java/co/edu/unicauca/piedrazul/users/application/RegisterUserService.java - Patient management → Patient records: reads and writes
src/main/java/co/edu/unicauca/piedrazul/patients/application/PatientService.java - Patient management → Users and roles: looks up users
src/main/java/co/edu/unicauca/piedrazul/patients/application/PatientService.java - Professionals → Users and roles: creates accounts
src/main/java/co/edu/unicauca/piedrazul/professionals/application/ProfessionalService.java - Professionals → Specialties: uses specialty data
- Weekly availability → Availability records: reads and writes
src/main/java/co/edu/unicauca/piedrazul/scheduling/application/WeeklyAvailabilityService.java - Available slots → Availability records: reads ranges
src/main/java/co/edu/unicauca/piedrazul/scheduling/application/AvailableSlotService.java - Available slots → Appointments and history: checks bookings
src/main/java/co/edu/unicauca/piedrazul/scheduling/application/AvailableSlotService.java - Available slots → Professionals: checks professional
src/main/java/co/edu/unicauca/piedrazul/scheduling/application/AvailableSlotService.java - Appointments and history → Appointment records: reads and writes
src/main/java/co/edu/unicauca/piedrazul/appointments/application/AppointmentService.java - Appointments and history → Patient management: looks up patient
src/main/java/co/edu/unicauca/piedrazul/appointments/application/AppointmentService.java - Appointments and history → Professionals: looks up professional
src/main/java/co/edu/unicauca/piedrazul/appointments/application/AppointmentService.java