- Gestión de Consultas Médicas
Descripción del Proyecto
Policonsultorio es una aplicación de gestión de clínicas y consultorios médicos diseñada para optimizar la administración de citas, historiales médicos y la gestión de pacientes. Este sistema permite a los profesionales de la salud y a los administradores de clínicas agilizar sus tareas diarias de forma eficiente.
Explore the docs »
Demo Deploy
·
Demo Video
·
Demo Day
🎥 Vista Previa del Proyecto
![Vista Previa del Video](https://github.com/No-Country-simulation/s18-22-t-java-react/blob/e643a2591b0f7e1ad3cedb17d7926a3f44124974/PM/reserva_turno-ezgif.com-effects.gif)
Características Principales
- Gestión de Citas: Permite agendar, modificar y cancelar citas de manera sencilla.
- Control de Pacientes: Registra datos personales y médicos de cada paciente.
- Historial Médico: Almacena un registro detallado de los antecedentes y tratamientos médicos.
- Reportes Médicos: Genera informes de citas, historial médico y visitas.
- Módulo de Facturación: Integra facturación para servicios médicos y cobros de consulta.
¿Porque Medilink?
Porque ofrece una plataforma que facilita la comunicación y gestión entre profesionales de la salud y pacientes, centralizando múltiples especialidades médicas y establecimientos en un solo lugar. Responde, además, a las necesidades de los usuarios, que en otras plataformas son desatendidas.
Porque puedes como paciente tener recordatorios de tus citas médicas, anotarte en listas de espera, obtener notificaciones a modo de aviso para saber qué consultas médicas realizar, entre otras funciones pensadas en función de las necesidades del usuario.
Por otro lado, como profesional de la salud puedes tener de forma centralizada la agenda completa, que se actualiza de acuerdo a las modificaciones realizadas.
Índice
-
¿POR QUÉ MEDILINK?
-
Tecnologías Utilizadas
- Uso
- Ruta de Desarrollo
- Contribuciones
- Licencia
- Instalación
- Agradecimientos
⚙️ Backend - Tecnologías Utilizadas
- Java Spring Boot 🌱: Framework robusto de Java para construir aplicaciones web rápidas y escalables.
- Swagger 📝: Herramienta para documentar APIs REST, facilitando la integración y pruebas.
- MySQL 💾: Base de datos relacional que permite almacenar y gestionar datos estructurados.
- Spring Security 🔒: Módulo de seguridad para gestionar la autenticación y autorización de usuarios.
- JWT (JSON Web Token) 🔑: Tecnología de autenticación basada en tokens, ideal para sistemas seguros y sin estado.
- OAuth 🔐: Protocolo de autorización que permite el acceso seguro a recursos mediante tokens.
- Railway ☁️: Plataforma en la nube utilizada para el despliegue del proyecto, proporcionando escalabilidad y alta disponibilidad.
- Mockito & JUnit 🧪: Herramientas de testing para realizar pruebas unitarias y asegurar la calidad del código.
|
|
|
|
Leo Amaya |
Lionel Staricoff |
Anthony Parra |
Marcos Paz |
|
|
|
|
## 🎨 **Frontend - Tecnologías Utilizadas**
![Tecnologías utilizadas](https://github.com/No-Country-simulation/s18-22-t-java-react/blob/bfc2bc36ec88be90baf35332d20dd484f60eccdf/PM/FRONTEND-PNG.png)
El frontend de **Policonsultorio** está diseñado para ser **rápido**, **escalable** y **responsivo**, garantizando una experiencia de usuario fluida y agradable en todos los dispositivos. Gracias a un stack de tecnologías modernas, hemos logrado una interfaz intuitiva y de alto rendimiento que se adapta a las necesidades tanto de profesionales de la salud como del personal administrativo.
---
### **Principales Herramientas del Frontend**
- **Next.js** ⚛️: Un framework basado en React que permite crear aplicaciones tanto de una sola página (SPA) como de múltiples páginas con renderizado optimizado. **Next.js** admite generación estática y renderizado del lado del servidor (SSR), lo cual reduce significativamente los tiempos de carga, mejora la experiencia de usuario y optimiza el SEO. Esto es clave para que el Policonsultorio gane visibilidad en buscadores y mantenga un rendimiento alto incluso con grandes volúmenes de datos.
- **Tailwind CSS** 🎨: Un framework de diseño CSS basado en utilidades que facilita la creación de interfaces personalizadas y adaptables. Tailwind CSS permite a los desarrolladores diseñar componentes rápidamente mediante un sistema de clases de utilidad. Este enfoque modular agiliza la creación de interfaces consistentes, escalables y visualmente atractivas, lo que asegura una experiencia de usuario profesional y limpia.
- **TypeScript** 🛠️: Un superconjunto de JavaScript que incorpora tipado estático, lo cual ayuda a minimizar errores y facilita el trabajo en equipo. **TypeScript** es ideal para proyectos como Policonsultorio, donde la precisión y fiabilidad son esenciales. El tipado estático hace que el código sea más mantenible y ayuda a detectar problemas potenciales en tiempo de desarrollo, asegurando que el sistema frontend sea robusto y esté libre de errores.
---
### 🌟 **Beneficios Clave del Stack Frontend**
1. **Rendimiento y Velocidad Mejorados**: Con **Next.js**, la aplicación optimiza el tiempo de carga gracias a su renderizado eficiente y su capacidad para servir páginas pre-renderizadas. Esto mejora la percepción del usuario y permite que los profesionales accedan rápidamente a la información del sistema.
2. **Consistencia y Escalabilidad en el Diseño**: **Tailwind CSS** permite la creación de una interfaz uniforme y fácilmente escalable. Esto es fundamental para el Policonsultorio, ya que asegura que los cambios de diseño sean implementados de forma rápida y consistente en todas las secciones de la aplicación.
3. **Código Seguro y Eficiente**: Gracias a **TypeScript**, el código frontend es menos propenso a errores y más fácil de entender y mantener. Esta confiabilidad en el código es especialmente importante en un entorno donde los datos médicos y la precisión en el manejo de información son críticos.
---
### 🚀 **Resultados en la Experiencia del Usuario**
Gracias a este stack de frontend, **Policonsultorio** ofrece una interfaz fácil de usar, rápida y adaptable a dispositivos móviles y de escritorio. La aplicación se mantiene rápida y responsiva, permitiendo que el personal médico y administrativo navegue de forma intuitiva y sin demoras. Esto se traduce en una experiencia de usuario optimizada, donde cada acción es rápida y el acceso a información es inmediato, mejorando así la eficiencia del día a día en el consultorio.
---
### **Funcionalidades Clave**
1. **Autenticación y Autorización Segura**: Usando **Spring Security**, **JWT** y **OAuth** para garantizar acceso controlado.
2. **Documentación Interactiva de la API**: Con **Swagger** para una mejor comprensión y facilidad de uso.
3. **Despliegue en la Nube**: Implementado en **Railway** para alta disponibilidad.
4. **Pruebas de Calidad**: A través de **Mockito** y **JUnit** para mantener la integridad del código.
|
|
Lazaro Nazareno |
william sanchez |
|
|
## ⚙️ **Qa - Testing**
Alcance de las Pruebas
Descripción del Proyecto
El equipo de QA se centrará en las siguientes áreas:
📋 Pruebas Funcionales:
⦁ Verificar que todas las características y funcionalidades funcionen como se espera.
⦁ Probar diferentes escenarios de usuario y casos límite.
⦁ Asegurar la correcta entrada y salida de datos.
App de Testeo»
Click Up
·
Testing-VS-Code
·
Casos de prueba
![Tecnologías utilizadas](https://github.com/No-Country-simulation/s18-22-t-java-react/blob/aea6ea5655fb5bba8f4bd7154f1309c5a1d87263/PM/QA-TESTING-SINFONDO.png)
|
|
|
Jeniree Suarez |
Priscila Dafne |
Darlyn Ramírez |
|
|
|
---
## ⚙️ **UX-UI**
![Tecnologías utilizadas](https://github.com/No-Country-simulation/s18-22-t-java-react/blob/aea6ea5655fb5bba8f4bd7154f1309c5a1d87263/PM/ux-ui%20sin%20fondo.png)
Descripción del Proyecto
Este MVP de Medilink se centra en establecer un sistema básico pero funcional para la gestión de citas médicas en una plataforma digital. En esta fase inicial, el objetivo es ofrecer las características necesarias que permitan a los usuarios agendar y gestionar citas médicas, además de optimizar el tiempo de los profesionales de la salud.
🏭 Pruebas de humo
⦁ Identificación de las funciones críticas: Determinamos que las funciones más importantes del sistema funcionen correctamente para que el sistema se considere estable.
⦁ Crear un conjunto de casos de prueba: Diseñamos un conjunto mínimo de casos de prueba para cubrir las funciones críticas.
⦁ Ejecutar los casos de prueba: Ejecutamos los casos de prueba de forma secuencial.
⦁ Evaluar los resultados: Si se encuentran errores críticos, se detiene la prueba y se notifica al equipo de desarrollo. Si todas las funciones críticas funcionan correctamente, se considera que la prueba de humo ha sido exitosa.
---
Duración y Alcance del Proyecto
### Duración del Proyecto
El desarrollo de este MVP se realizó en el contexto de una simulación laboral de 4 semanas, en la que se organizó el trabajo en sprints semanales para cumplir con cada uno de los objetivos establecidos de manera iterativa y progresiva.
### Alcance del MVP
#### Objetivo Principal
**Problema a Resolver:** La dificultad en la gestión de citas y turnos médicos, que a menudo implica problemas de disponibilidad, organización y recordatorio de citas.
- **Funcionalidades esenciales**: Agendamiento y gestión de citas, recordatorios automáticos y un sistema básico de lista de espera.
- **Características adicionales (futuras iteraciones)**: La gestión completa del historial clínico y el soporte directo al cliente durante el agendamiento.
- **Enfoque actual**: Asegurar que la experiencia de agendar y gestionar citas sea funcional, intuitiva y permita cumplir con las necesidades prioritarias de los usuarios.
#### Objetivo del MVP
Proporcionar a los usuarios una herramienta simplificada que permita a los pacientes gestionar sus citas médicas de manera conveniente y recibir recordatorios automatizados, con el fin de mejorar la puntualidad y evitar citas perdidas. Este MVP busca optimizar el tiempo de los pacientes y los profesionales de salud, facilitando la comunicación y reduciendo las fricciones en la programación de citas.
---
Beneficios Esperados para los Usuarios
- **Para los pacientes**: Mayor facilidad para agendar citas y recibir recordatorios, optimización del tiempo al tener visibilidad de la disponibilidad de los profesionales de la salud, y opciones de lista de espera.
- **Para los médicos**: Una organización más efectiva de sus agendas, reducción de tiempos muertos y cancelaciones con un sistema automatizado de reprogramación.
User Stories
### Punto de vista del paciente
- Como paciente, quiero poder gestionar mis citas médicas, incluyendo la posibilidad de cancelar la cita y ver la disponibilidad de agenda del médico, para poder reprogramar de manera conveniente.
- Como paciente, quiero buscar y filtrar entre una serie de profesionales de la salud de diversas especialidades, para optar por el que se ajuste mejor a mis necesidades.
- Como paciente, quiero buscar por nombre del médico en particular, para agendar cita.
- Como paciente, quiero recibir recordatorios de mis chequeos médicos y citas a través de correo electrónico o WhatsApp para no olvidar realizarme los exámenes requeridos.
- Como paciente, quiero inscribirme en una lista de espera si no encuentro una cita disponible, de forma que pueda recibir una notificación si alguien cancela su cita.
- Como paciente, quiero recibir una notificación si alguien cancela una cita, para tener la oportunidad de tomar ese espacio antes que otros.
- Como paciente, quisiera tener una lista dónde ver los turnos ya reservados, para organización y recordatorio.
- Como paciente, quisiera tener algún tipo de atención al cliente durante el proceso de agendar una cita, para consultar mis dudas en caso de tenerlas.
### Punto de vista del médico
- Como médico, quiero que los pacientes puedan ver la disponibilidad de mi agenda y cancelen citas de forma clara, para tener una mejor organización de mis horarios.
- Como médico, quiero poder subir y gestionar la información clínica de cada paciente, de manera que pueda tener un control claro sobre su historial y actualizarla fácilmente.
- Como médico, quiero que las citas canceladas sean gestionadas automáticamente y ofrecidas a los pacientes en la lista de espera, para optimizar mi agenda sin perder tiempo de atención.
---
Resumen de funcionalidades
- Cargar datos médicos o historia clínica del paciente.
- Seguimiento de chequeos médicos y recordatorios.
- Gestión de citas médicas.
- Control sobre la información clínica del paciente.
- Lista de espera para citas canceladas o citas no disponibles.
- Notificaciones por cancelaciones de citas.
- Prevención de superposición de turnos y citas duplicadas.
- Reglas de cancelación de citas con 24 horas de anticipación.
---
Objetivos de Usabilidad y UX
### Metas del Usuario
- **Pacientes**:
- Agendar y gestionar citas de manera rápida, incluyendo cancelaciones y reprogramaciones.
- Filtrar y buscar médicos por especialidad o nombre.
- Recibir recordatorios automáticos de citas.
- Inscribirse en listas de espera para recibir notificaciones de disponibilidad.
- Visualizar turnos reservados para mejor organización.
- **Médicos**:
- Tener un calendario de citas actualizado y organizado.
- Minimizar tiempos muertos mediante listas de espera.
- Gestionar eficientemente los turnos y notificaciones.
### Metas del Negocio
- Incrementar la accesibilidad a los servicios de salud.
- Reducir las citas no asistidas mediante recordatorios.
- Fidelizar a los usuarios con una experiencia fluida.
- Crear una base sólida para futuras expansiones de la plataforma.
---
KPI’s y Métricas de Éxito
- **Tasa de conversión de citas**: Porcentaje de usuarios que agendan citas.
- **Índice de citas asistidas**: Porcentaje de citas en las que los pacientes se presentan.
- **Satisfacción del usuario (CSAT)**: Medición de satisfacción a través de encuestas.
- **Tiempo promedio en la tarea**: Tiempo necesario para agendar una cita.
- **Tasa de uso de la lista de espera**: Porcentaje de usuarios que obtienen citas a través de esta funcionalidad.
- **Retención de usuarios**: Porcentaje de usuarios que regresan a la plataforma.
|
|
|
Micaela Santana |
Camila Eberwein |
Nadia Maure |
|
|
|
---
Project Manager
![Tecnologías utilizadas](https://github.com/No-Country-simulation/s18-22-t-java-react/blob/e948aee114a173f38bea735ae1d5815170529b03/PM/PM.png)
🚀 Project Manager - Tecnologias Utilizadas
Para el rol de **Project Manager**, se han utilizado diversas herramientas que facilitan la gestión del proyecto, la comunicación y la colaboración entre los miembros del equipo. A continuación, se presentan las herramientas clave:
---
ClickUp - Herramienta de gestión de tareas para planificación ágil y control del flujo de trabajo.
Git (Control de Versiones) - Permite el seguimiento de cambios en el código y la colaboración efectiva.
README - Documentación clara y accesible de cada sección del proyecto.
Discord - Canal de comunicación en tiempo real para coordinar tareas y resolver dudas.
Google Drive - Almacenamiento y compartición de documentos del proyecto de forma segura y centralizada.
---
Estas herramientas permiten al **Project Manager** gestionar el cronograma, controlar los cambios en el código, documentar cada aspecto del proyecto y mantener una comunicación fluida entre todos los miembros del equipo, asegurando el éxito del proyecto en cada fase.
💻 Instalación y Configuración
Para comenzar con el proyecto, sigue estos pasos de instalación. Asegúrate de tener **Visual Studio Code** o tu editor de código preferido instalado.
---
(back to
top)
Paso 1: Clonar el Repositorio
Copia el siguiente comando y pégalo en tu terminal para clonar el repositorio a tu máquina local:
```bash
git clone https://github.com/usuario/nombre-del-repositorio.git
git clone https://github.com/usuario/policonsultorio.git
cd policonsultorio
```bash
cd nombre-del-repositorio