Este es un modelo de README.md diseñado para un proyecto profesional de Spring Boot. He estructurado la información pensando en tu flujo de trabajo (Fedora/Bazzite) y siguiendo las mejores prácticas de documentación de software.
DentalCare es una API REST robusta construida con Spring Boot y PostgreSQL, diseñada específicamente para que un odontólogo independiente pueda gestionar su agenda y permitir que los pacientes reserven citas de forma autónoma y eficiente.
- Backend: Java 25 / Spring Boot 3.x
- Base de Datos: PostgreSQL
- Persistencia: Spring Data JPA (Hibernate)
- Seguridad: Spring Security & JWT (Opcional para el admin)
- Documentación: SpringDoc OpenAPI (Swagger)
- Gestión de Dependencias: Maven/Gradle
Note
Asegúrate de tener instalados los siguientes paquetes en tu contenedor o sistema:
- JDK 25.
- Maven 3.9+.
- PostgreSQL (o una instancia de Docker/Podman corriendo).
- Clonar el repositorio:
git clone https://github.com/tu-usuario/dental-care-system.git
cd dental-care-system
- Configurar la base de datos:
Crea una base de datos llamada
dental_dben PostgreSQL. - Variables de entorno:
Modifica el archivo
src/main/resources/application.propertieso utiliza variables de entorno:
spring.datasource.url=jdbc:postgresql://localhost:5432/dental_db
spring.datasource.username=tu_usuario
spring.datasource.password=tu_contraseña
spring.jpa.hibernate.ddl-auto=update
Tip
Si prefieres no instalar PostgreSQL localmente en tu sistema Fedora, puedes levantar un contenedor rápidamente con Podman:
podman run --name postgres-dental -e POSTGRES_PASSWORD=pass -p 5432:5432 -d postgres
| Método | Endpoint | Descripción |
|---|---|---|
| GET | /api/v1/disponibilidad |
Consulta horarios libres del odontólogo. |
| POST | /api/v1/citas |
Crea una nueva solicitud de cita. |
| GET | /api/v1/pacientes/{id}/citas |
Historial de citas de un paciente. |
| PATCH | /api/v1/citas/{id}/cancelar |
Cancela una cita existente. |
Para ejecutar la aplicación en modo desarrollo:
./mvnw spring-boot:run
Important
Una vez iniciada la aplicación, puedes acceder a la interfaz de Swagger para probar los endpoints en:
http://localhost:8080/swagger-ui/index.html
Para ejecutar la suite de pruebas unitarias e integración:
./mvnw test
Caution
Asegúrate de que el perfil de test esté configurado para usar una base de datos H2 o una instancia de PostgreSQL de pruebas para evitar borrar datos reales.
- Integración con notificaciones por correo electrónico (Spring Mail).
- Implementación de recordatorios vía WhatsApp.
- Panel de administración en React/Angular para el odontólogo.
Desarrollado con ❤️ para la gestión odontológica moderna.
¿Te gustaría que desarrolle la estructura de alguna entidad específica (como la lógica para calcular los slots de tiempo disponibles) o que te ayude con el archivo docker-compose.yaml para tu entorno de Bazzite?