Desarrollo de una API REST para Gestión Hospitalaria con Express, TypeScript y SQLite
Este proyecto consistió en el desarrollo del backend para la gestión de un hospital, proporcionando una API REST para administrar pacientes, médicos, citas y registros médicos. Se implementó utilizando Node.js con Express y TypeScript, junto con SQLite como base de datos.
El sistema incluye autenticación con JWT (JSON Web Token), control de accesos basado en roles y operaciones CRUD completas. Para mejorar la modularidad y mantenibilidad del código, se utilizó un CLI para la inyección de dependencias, facilitando la configuración y gestión de módulos dentro de la aplicación.
Tecnologías Utilizadas
Para garantizar un desarrollo estructurado y escalable, se emplearon las siguientes tecnologías en el backend:
- Node.js como entorno de ejecución
- Express como framework para la gestión de rutas y middleware
- TypeScript para mejorar la mantenibilidad y tipado del código
- SQLite como base de datos embebida y ligera
- CLI para inyección de dependencias, mejorando la modularidad del sistema
- JWT para autenticación segura
- bcrypt para encriptación de contraseñas
- Jest y Supertest para pruebas unitarias e integración
Inyección de Dependencias con CLI
En lugar de utilizar Prisma ORM, se optó por una estructura basada en CLI para la inyección de dependencias. Este enfoque permite una mejor organización del código y facilita la configuración de módulos reutilizables dentro de la API.
Mediante el uso de un CLI, se gestionan las dependencias de manera centralizada, asegurando que cada servicio pueda ser inyectado donde sea necesario sin acoplar directamente los módulos.
Autenticación y Control de Accesos
El backend implementa autenticación con JWT, protegiendo los endpoints y asegurando que cada solicitud esté correctamente autenticada y autorizada según el rol del usuario.
Los roles definidos incluyen:
- Administrador, con permisos para gestionar usuarios, especialidades y departamentos.
- Médico, con acceso a la administración de citas y registros médicos.
- Paciente, con permisos para consultar su historial médico y programar citas.
Un middleware de autenticación se encarga de verificar el token en cada solicitud y restringir el acceso a los recursos protegidos según los permisos del usuario.
Endpoints Implementados
El backend expone una API REST con las siguientes funcionalidades principales:
- Gestión de usuarios, incluyendo autenticación y control de roles
- Administración de médicos y pacientes
- Creación, modificación y cancelación de citas médicas
- Manejo de registros médicos, almacenando diagnósticos, prescripciones y notas clínicas
- Consulta de disponibilidad de médicos y asignación de pacientes
Todos los endpoints han sido protegidos con middleware de autenticación y validaciones de permisos para garantizar el acceso seguro.
Pruebas de Integración y Unitarias
Se implementaron pruebas unitarias y de integración con Jest y Supertest para validar el correcto funcionamiento de la API.
Las pruebas incluyen:
- Verificación del flujo de autenticación y generación de JWT
- Validación del control de accesos y restricciones por roles
- Pruebas de CRUD en la gestión de usuarios, médicos y pacientes
- Evaluación de la administración de citas y registros médicos
Estas pruebas garantizan la estabilidad del backend y permiten detectar errores antes de desplegar en un entorno de producción.
