Administración de citas médicas

Se ha realizado una aplicación web para administrar citas médicas online la cual consta de 2 partes:

Este repositorio contiene el código backend del proyecto con el que se puede realizar múltiples tareas como gestionar datos, autenticación y procesamiento de solicitudes de:

  1. Pacientes. 🙋🏻‍♂️🙋🏻‍♀️
  2. Doctores. 🧑🏻‍⚕️
  3. Citas médicas. 🕞
  4. Especialidades. 🩺
  5. Horarios médicos. 📅

Instalación y configuración 🛠️

  • Instalar las depedencias del proyecto
    npm install

Supabase 💾

Se ha implementado Supabase como base de datos online, por lo tanto se requiere:

  • Crear un proyecto en su web.
  • Configurar las tablas de la BD y establecer RLS disabled.
  • Copiar los valores de PROJECT_URL y API_KEY para usar en nuestro proyecto.

Variables de entorno 🔑

  • Configurar las variables de entorno en el archivo .env en la raíz del proyecto con los parámetros:

    SUPABASE_PROJECT_URL = "https://link-de-ejemplo.supabase.co";
    SUPABASE_API_KEY = "mykeysupabaseproject";
    SECRET_KEY = "mysecretkey";
    ACCOUNT_SID = "twilioaccountsid";
    AUTH_TOKEN= "twilioauthtoken";

    Se recomienda encriptar el valor de SECRET_KEY con la función crypto de Node.

    Ingresar al CLI de Node en el terminal

     node

    Ejecutar

    require("crypto").randomBytes(64).toString("hex")

    Esto nos dará una clave la cual usaremos como SECRET_KEY

Instalación y configuración de JEST

npm i jest -D

  • En package.json scripts poner jest

npm i --save-dev @types/jest

jest solo me permite usar require, entonces para poder usar import ,usaré este comando:

npm install --save-dev babel-jest @babel/core @babel/preset-env

Para usar typescript

npm install --save-dev @babel/preset-typescript

npm i ts-jest -D

Aquí se instala el coverage dependiendo de la configuración cuando ejecutemos el siguiente comando. También se configura jest

npx jest --init

Ejecutar el proyecto

npm run dev

Funcionamiento

Hay rutas protegidas con middleware que requieren enviar un token de verificacion en el Headers, el cual se obtiene al momento de hacer login de un usuario.

Pacientes 🙋🏻‍♂️🙋🏻‍♀️

Doctores 🧑🏻‍⚕️

Citas médicas 🕞

Especialidades 🩺

Horarios médicos 📅