# CancerCare ## Descripción CancerCare es una aplicación web diseñada para ayudar a personas diagnosticadas con cáncer a controlar su evolución durante el tratamiento, llevar un seguimiento de sus síntomas, citas médicas, medicación y evolución general. La plataforma permite a cada usuario gestionar su información de forma segura y compartir resúmenes relevantes con su médico, facilitando la comunicación entre paciente y profesional sanitario. ## Objetivo Proporcionar una herramienta digital para: - registrar y controlar síntomas - gestionar citas médicas - mantener un seguimiento de tratamientos - mantener un historial de evolución - compartir información resumida con el médico - mejorar la organización y la comunicación entre paciente y profesionales ## Usuarios La aplicación estará pensada para distintos tipos de usuarios: - Paciente - Médico - Administrador ## Funcionalidades principales ### Paciente - Registro e inicio de sesión - Edición de perfil personal - Registro de síntomas - Registro de citas y revisiones - Seguimiento de tratamientos y medicación - Historial clínico básico - Exportación de resúmenes en PDF - Envío de información a su médico - Recordatorios y alertas ### Médico (para más adelante) - Registro e inicio de sesión - Asociación con pacientes - Visualización del historial del paciente - Consulta de síntomas y evolución - Recepción de resúmenes compartidos - Gestión de seguimiento clínico ### Administrador - Gestión de usuarios - Control de permisos - Supervisión de la plataforma - Administración de roles ## Tecnologías previstas La aplicación se desarrollará como una solución web, accesible desde ordenador, tablet y móvil. ### Frontend - HTML - CSS - JavaScript - Bootstrap ### Backend - Java - Spring Boot ### Seguridad - Spring Security - Autenticación por usuario y contraseña - Roles y permisos por tipo de usuario ### Base de datos - MySQL ## Arquitectura recomendada - Frontend responsivo con Bootstrap - Backend en Spring Boot - API REST - Persistencia con MySQL - Seguridad con Spring Security - Autenticación basada en usuarios y roles ## Modelo de datos previsto La aplicación gestionará información sobre: - usuarios - pacientes - médicos - citas - síntomas - tratamientos - medicación - historial médico - documentos o resúmenes compartidos ## Casos de uso - Un paciente registra sus síntomas diarios. - El sistema guarda la información en la base de datos. - El paciente añade una cita con su médico. - El médico accede al resumen de evolución del paciente. - El paciente exporta un informe en PDF y lo comparte con su profesional sanitario. ## Importancia del proyecto Este proyecto tiene un valor real para personas que necesitan un seguimiento constante de su salud durante el tratamiento, y además ayuda a los profesionales médicos a tener acceso más rápido a información útil y organizada. ## Fase inicial (MVP) Se propone desarrollar una primera versión con estas funcionalidades: 1. Registro e inicio de sesión 2. Gestión de perfil 3. Registro de síntomas 4. Registro de citas 5. Historial de evolución 6. Exportación de resumen para compartir con el médico ## Estado del proyecto Proyecto en fase de diseño e ideación inicial. ## Entorno local con Docker Docker Compose levanta MySQL 8.4 y conserva los datos en un volumen entre reinicios: ```bash docker compose up -d ``` La base de datos queda disponible en `localhost:3306`, con el nombre `cancercare`. Para detener el servicio: ```bash docker compose down ``` Los valores de conexión predeterminados son solo para desarrollo local y se pueden sustituir con variables de entorno o un archivo `.env`. `schema.sql` crea las tablas automáticamente la primera vez que MySQL inicializa el volumen; `schema.mmd` contiene el diagrama entidad-relación. Si ya existe un volumen de datos, MySQL no vuelve a ejecutar los scripts de inicialización. El backend y el frontend todavía no están implementados, así que por ahora solo se ejecuta la base de datos.