Mario González

Game Developer

Software Developer

API REST para Gestión Hospitalaria

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.