How cactuzzz24/-proyecto-final-poo-csti-1830-4361 works
Purpose and Runtime
A desktop Java clinic-management system for medical consultations, disease surveillance, vaccinations, patient clinical histories, summaries, and dashboard reporting. It is an Eclipse project with packaged third-party JARs, using Swing/WindowBuilder-style visual screens rather than a web stack. Primary persisted data appears to be local serialized/data files: ProyectoFinal/clinica.dat and ProyectoFinal/clinica_respaldo.dat.
Entry and Session Routing
The user-facing entry point is the login UI at ProyectoFinal/src/Visual/IniciarSesion.java. Authentication and role selection route users into distinct principal screens:
• Administrator: ProyectoFinal/src/Visual/PrincipalAdmin.java
• Doctor: ProyectoFinal/src/Visual/PrincipalMedico.java
• Patient: ProyectoFinal/src/Visual/PrincipalPaciente.java
User identity and authorization are represented by ProyectoFinal/src/Logic/Usuario.java, with person specialization/modeling in ProyectoFinal/src/Logic/Persona.java, ProyectoFinal/src/Logic/Doctor.java, and ProyectoFinal/src/Logic/Paciente.java.
Core Domain and Aggregate Boundary
ProyectoFinal/src/Logic/Clinica.java is the likely central clinic aggregate/service: it owns or coordinates the application’s collections, domain operations, and persistence-facing state. The main medical record workflow is modeled through:
• Appointments: ProyectoFinal/src/Logic/Cita.java
• Consultations: ProyectoFinal/src/Logic/Consulta.java
• Clinical-history summaries: ProyectoFinal/src/Logic/ResumenClinico.java
This forms the principal boundary between Swing screens and business data: UI dialogs collect actions and fields; logic objects represent clinic entities and execute domain updates.
Clinical Operations
Consultation registration is driven by ProyectoFinal/src/Visual/RegConsulta.java, while appointment registration is handled by ProyectoFinal/src/Visual/RegCita.java. Their records can be viewed through ProyectoFinal/src/Visual/ListarConsultas.java and ProyectoFinal/src/Visual/ListarCitas.java.
Disease monitoring is modeled by ProyectoFinal/src/Logic/Enfermedad.java and managed through ProyectoFinal/src/Visual/RegEnfermedad.java / ProyectoFinal/src/Visual/ListarEnfermedad.java. Vaccination management uses ProyectoFinal/src/Logic/Vacuna.java, with registration/application screens at ProyectoFinal/src/Visual/RegVacuna.java and ProyectoFinal/src/Visual/AplicarVacuna.java.
Administration and Master Data
User registration is split between general administration and patient-oriented onboarding:
• ProyectoFinal/src/Visual/RegUsuario.java
• ProyectoFinal/src/Visual/RegUsuarioParaPaciente.java
Role/entity listings expose administrative read and maintenance flows: ProyectoFinal/src/Visual/ListarAdministrador.java, ProyectoFinal/src/Visual/ListarDoctor.java, and ProyectoFinal/src/Visual/ListarPaciente.java. These screens are clients of the domain model rather than separate service tiers.
Reporting and Visualization
Dashboard/chart refresh logic is concentrated in ProyectoFinal/src/Logic/UptadeGraficas.java. It likely transforms clinic data into chart-ready datasets for the principal interfaces. Reporting depends on bundled JFreeChart and JCommon libraries in ProyectoFinal/lib/jfreechart-1.0.19.jar and ProyectoFinal/lib/jcommon-1.0.23.jar; date input uses ProyectoFinal/lib/jdatepicker-1.3.4.jar.
Persistence, Integrations, and Deployment Shape
The application is local-first: no database schema, build system, or remote API client is present in the tree. clinica.dat is the main data store and clinica_respaldo.dat is a backup artifact, implying file-based persistence coordinated from the logic layer. ProyectoFinal/src/server/Servidor.java indicates a server/runtime boundary may exist, but the repository’s dominant architecture remains a Java desktop client with local domain objects and data files. Phone validation/formatting can use bundled ProyectoFinal/lib/libphonenumber-8.13.16.jar.
Main entry points: Clinica.java Clinic aggregate · PrincipalAdmin.java Role principal screens · UptadeGraficas.java Chart refresh · IniciarSesion.java Login & role routing
Components 19
Swing UI
Role-specific screens and clinical workflows.
- Login & role routing
ProyectoFinal/src/Visual/IniciarSesion.java - Role principal screens · Administrator, doctor, and patient landing screens.
ProyectoFinal/src/Visual/PrincipalAdmin.java - Consultation workflow · Register and list consultations.
ProyectoFinal/src/Visual/RegConsulta.java - Appointment workflow · Register and list appointments.
ProyectoFinal/src/Visual/RegCita.java - Disease management · Register and list disease records.
ProyectoFinal/src/Visual/RegEnfermedad.java - Vaccination workflow · Register vaccines and apply them.
ProyectoFinal/src/Visual/RegVacuna.java - User administration · User onboarding and role listings.
ProyectoFinal/src/Visual/RegUsuario.java
Clinic Domain
Core entities and application state.
- Clinic aggregate · Coordinates collections, domain operations, and persisted state.
ProyectoFinal/src/Logic/Clinica.java - Users & people · Users with doctor and patient person specializations.
ProyectoFinal/src/Logic/Usuario.java - Medical records · Appointments, consultations, and clinical summaries.
ProyectoFinal/src/Logic/Cita.java - Disease records
ProyectoFinal/src/Logic/Enfermedad.java - Vaccines
ProyectoFinal/src/Logic/Vacuna.java - Chart refresh · Transforms clinic data into chart-ready datasets.
ProyectoFinal/src/Logic/UptadeGraficas.java
Local Storage
Serialized clinic data and backup.
- Clinic data · Primary local persisted state.
ProyectoFinal/clinica.dat - Clinic backup
ProyectoFinal/clinica_respaldo.dat
Bundled Libraries
- JFreeChart / JCommon
ProyectoFinal/lib/jfreechart-1.0.19.jar - Date picker
ProyectoFinal/lib/jdatepicker-1.3.4.jar - Phone validation
ProyectoFinal/lib/libphonenumber-8.13.16.jar
Other components
- Server runtime · Potential secondary runtime boundary.
ProyectoFinal/src/server/Servidor.java
Connections 20
- Login & role routing → Users & people: authenticates
- Login & role routing → Role principal screens: routes by role
- Role principal screens → Clinic aggregate: uses
- Consultation workflow → Clinic aggregate: registers and reads
- Appointment workflow → Clinic aggregate: registers and reads
- Disease management → Clinic aggregate: manages
- Vaccination workflow → Clinic aggregate: manages
- User administration → Clinic aggregate: maintains users
- Clinic aggregate → Users & people: coordinates
- Clinic aggregate → Medical records: coordinates
- Clinic aggregate → Disease records: coordinates
- Clinic aggregate → Vaccines: coordinates
- Clinic aggregate → Clinic data: persists
- Clinic data → Clinic backup: backs up to
- Clinic aggregate → Chart refresh: supplies data
- Chart refresh → JFreeChart / JCommon: renders with
- Role principal screens → Chart refresh: refreshes dashboards
- Appointment workflow → Date picker: uses dates
- User administration → Phone validation: validates phones
- Server runtime → Clinic aggregate: possible access boundary