-
Notifications
You must be signed in to change notification settings - Fork 0
Equipo 3: Álvaro Bernal y Adrián Romero
Leyenda de Equipos:
- Equipo 1: Antonio Rodríguez Ruiz y Álvaro González Frías
- Equipo 2: María García Cáceres y Manuel Sánchez Jiménez
- Equipo 3: Álvaro Bernal Caunedo y Adrián Romero Flores
- Equipo 4: Carlos Baquero Villena y Aitor Rodríguez Dueñas
- Equipo 5: Daniel Arriaza Arriaza y Rafael González Castillero
Categoria | Nivel de Acabado | 1-10 |
---|---|---|
Microservicio Individual (Appointments + Workshifts) | Avanzado | 10 |
Aplicación Completa | Avanzado | 10 |
En concreto, por el esfuerzo realizado y por la ayuda prestada al resto del equipo considero que mis compañeros Adrián Romero Flores y Antonio Rodríguez Ruíz deberían ser puntuados con la mejor nota posible.
CloudMedix es una aplicación de consultoría médica diseñada para gestionar de manera eficiente los procesos relacionados con una clínica o sistema de salud mediante una arquitectura basada en microservicios. Cada microservicio tiene una funcionalidad específica, como la autenticación de usuarios, gestión de pagos, notificaciones, historial clínico, turnos laborales, y citas médicas.
La aplicación permite a los usuarios realizar operaciones críticas como programar citas, gestionar datos de pacientes y personal, y procesar pagos, garantizando modularidad, escalabilidad y facilidad de mantenimiento. Además, incluye un sistema de registro de eventos para el monitoreo y auditoría de las operaciones realizadas.
El API REST de Appointment Service está diseñado para gestionar citas médicas. Proporciona funcionalidades como la creación, actualización, cancelación y consulta de citas, además de permitir verificar la disponibilidad de horarios y consultar detalles relacionados, como el clima para una cita específica.
-
GET /appointments
Función: Recuperar todas las citas registradas en el sistema. -
POST /appointments
Función: Crear una nueva cita con detalles especificados. -
GET /appointments/available
Función: Consultar horarios disponibles para un médico en una fecha específica. Características avanzadas (opcional):- Petición asíncrona mediante un patrón "Materialized View" con rabbitMQ.
- Comunicación con otros microservicios comprobar la disponibilidad en tiempo real (En concreto, con el microservicio de Workshifts).
-
GET /appointments/{id}
Función: Recuperar los detalles de una cita específica por ID. -
PUT /appointments/{id}
Función: Actualizar detalles de una cita específica por ID. -
PUT /appointments/{id}/cancel
Función: Cancelar una cita específica cambiando su estado a "cancelled". -
GET /appointments/{id}/weather
Función: Obtener el pronóstico del clima para la fecha y ubicación de una cita específica.
Características avanzadas (opcional):- Comunicación con API externas para datos meteorológicos.
- Uso de circuit breakers para gestionar fallos en la conexión con la API externa.
- Cache para evitar múltiples consultas a la api externa (y así minimizar el número de peticiones duplicadas)
-
GET /appointments/patient/{patientId}
Función: Listar todas las citas de un paciente específico.
El API REST de Workshifts Service se utiliza para gestionar turnos de trabajo. Permite programar, asignar y modificar turnos de empleados.
-
GET /workshifts
Función: Obtener una lista de todos los turnos de trabajo registrados. -
POST /workshifts
Función: Crear un nuevo turno de trabajo con detalles específicos. -
POST /workshifts/week
Función: Programar turnos de trabajo para una semana completa. -
GET /workshifts/{id}
Función: Obtener los detalles de un turno de trabajo específico por ID. -
PUT /workshifts/{id}
Función: Actualizar un turno de trabajo específico por ID. -
DELETE /workshifts/{id}
Función: Eliminar un turno de trabajo específico por ID. -
GET /workshifts/doctor/{doctorId}
Función: Obtener todos los turnos de trabajo asignados a un médico específico por su ID.
Criterio | Cumplido | Evidencia |
---|---|---|
API REST: GET, POST, PUT y DELETE | ✅ | API |
Autenticación | ✅ | Middleware |
Frontend | ✅ | Captura de una vista |
Desplegado y accesible | ✅ | Enlace |
Versionado | ✅ | API doc |
Documentación de la API | ✅ | Doc |
MongoDB | ✅ | Conexión |
Validación de los datos | ✅ | Validación |
GitFlow | ✅ | Github |
Github Actions | ✅ | Actions |
Docker | ✅ | Imagen |
Pruebas de componente | ✅ | Pruebas |
Pruebas de integración con la BDD | ✅ | Pruebas |
Característica | Cumplido | Evidencia |
---|---|---|
Frontend con rutas y navegación | ✅ | Captura de una vista |
Pruebas en interfaz de usuario | [ ] | |
Materialized view para otros microservicios | ✅ | Appointments-Workshifts |
Cachés u optimización de acceso a datos | ✅ | Caché |
Consumo de API externa | ✅ | OpenWeather API |
Autenticación JWT | ✅ | Middleware |
Circuit breaker | ✅ | CircuitBreaker |
Serverless adicional | [ ] | |
Gestión de capacidad (throttling, toggles) | [ ] |
Criterio | Cumplido | Evidencia |
---|---|---|
Integración completa entre microservicios | ✅ |
Criterio | Cumplido | Evidencia |
---|---|---|
Frontend común que integre los frontends de microservicios | ✅ | Frontend |
Pruebas de integración entre microservicios en CI/CD | ||
Uso de un API Gateway avanzado | ✅ | API Gateway |
Sistema de comunicación asíncrona | ✅ | E.j Logger |
Mecanismo de deshacer transacciones distribuidas | ✅ | E.j Creacion de staff con usuario |
Criterio | Cumplido | Evidencia |
---|---|---|
Microservicio básico | ✅ | Microservicio básico |
CA de la aplicación | ✅ | Customer Agreement |
Doc de Resumen del microservicio | ✅ | Wiki |
Vídeo del microservicio o app funcionando | ||
Presentación | ✅ | Presentacion |
Criterio | Cumplido | Evidencia |
---|---|---|
Aplicación básica | ✅ | Mostrado previamente |
3 Microservicio avanzado | ✅ | Mostrado previamente |
Criterio | Cumplido | Evidencia |
---|---|---|
20 pruebas implementadas (escenarios positivos y negativos) | ✅ | Pruebas |
API-REST con OpenAPI | ✅ | Doc |
5 Microservicio avanzado | ✅ | Mostrado previamente |
3 Aplicación avanzada | ✅ | Mostrado previamente |
Criterio | Cumplido | Evidencia |
---|---|---|
Feature toggles | ✅ | Creación de Staff |
6 Microservicio avanzado | ✅ | Mostrado previamente |
4 Aplicación avanzada | ✅ | Mostrado previamente |
Criterio | Cumplido | Evidencia |
---|---|---|
Extra: Permission Toggle | ✅ | Toggle de permisos mediante configuracion |