/medi_site

Proyecto de microservicios

Primary LanguageJava

medi_site

Proyecto de microservicios

Medi - Cine es una empresa dedicada a los servicios médicos, dicha empresa está por lanzar su nueva aplicación “Medi-Site”, un nuevo sitio web destinado a facilitar la reservación de citas médicas en línea. La plataforma permitirá a los pacientes buscar especialistas médicos, ver su disponibilidad y reservar una cita y gestionarla desde la comodidad de su hogar Fuiste elegido como consultor y desarrollador para el backend de esta aplicación, uno de los requisitos del cliente es que esta será una aplicación multiplataforma por lo que tomarás el approachment del desarrollo de microservicios REST. La empresa ha accedido a recibir entregas paulatinas incrementando la funcionalidad de su aplicación cada entrega. Para la primera versión tendrás que cubrir la funcionalidad crítica del negocio. Funcionalidades clave ● Búsqueda de especialistas: Los pacientes pueden realizar la búsqueda de médicos por especialidad, ciudad y/o disponibilidad. ● Reservación de citas: Los usuarios podrán crear una reservación para un médico específico en uno de sus horarios disponibles. ● Gestión de citas: El usuario podrá cancelar o reprogramar una de sus citas existentes. ● Perfil de médico: Obtiene la información relevante de un médico en específico, como su especialidad, horarios y ciudad de residencia. Microservicios propuestos Se propone abordar este requerimiento con los siguientes microservicios: ● Servicio de médicos: Administra la información de los médicos, incluyendo su perfil, horarios y especialidades. ● Servicio de citas: Se encarga de la lógica para reservar, cancelar y reprogramar una cita. Microservicio de médicos Deberá contar con los endpoints necesarios para cumplir con la siguiente lista de requerimientos. ● Como paciente, quiero poder consultar el listado completo de las especialidades con las que cuento dentro de mi aplicación.. ● Como paciente, quiero poder obtener el listado de aquellos médicos cuya especialidad coincide con la especialidad especificada. ● Como paciente, quiero poder obtener el listado de médicos que tienen disponibilidad en cierto rango de horario. ● Como paciente, quiero poder obtener el listado de médicos que se encuentren en una ciudad. ● Como paciente quiero poder combinar los diferentes filtros. Microservicio de médicos Deberá contar con los endpoints necesarios para cumplir con la siguiente lista de requerimientos. ● Como paciente, quiero poder crear una cita para un doctor específico, en un horario específico. Dicha cita deberá ser única (no es posible agendar al mismo dr en el mismo horario para diferente cliente) ● Como paciente, quiero poder obtener el listado de citas que tengo agendadas en un periodo de dos fechas, dicho listado otorgará la información completa de las citas en cuestión, incluyendo su estatus. ● Como paciente, quiero poder obtener el detalle de una cita en específico. ● Como paciente, quiero poder modificar los detalles de mis citas. ● Como paciente, quiero poder cancelar mis citas. Tecnologías a utilizar ● Spring boot: Para el desarrollo de los microservicios. ● JWT: Para la autenticación de las peticiones a los microservicios. ● SQL Server / MySQL: Como sistema de gestión de base de datos. ● HTTP: Como protocolo de comunicación, usaremos servicios REST. ● Swagger: Para la documentación de los endpoints de nuestros microservicios. ● Github: Como control de versiones. Requisitos especiales ● El historial de las citas de un pacientes debe mantenerse en el sistema indefinidamente, así la cita se haya llevado a cabo, o no. ● En medida de los posible, implementar catálogos para datos como las especialidades y ciudades. ● Dos microservicios independientes con una misma base de datos. ● Los servicios cumplen con las buenas prácticas de diseño y desarrollo, incluyendo el uso correcto de las distintas anotaciones de Spring boot, ● La base de datos deberá cumplir con buenas prácticas de diseño. ● La conexión entre los servicios y la base de datos se hará mediante JPA.