Skip to content

ChuyGonzalezDev/BK_HospitalApi

Repository files navigation

API Hospital

https://github.com/ChuyGonzalez

Proyecto Final - Back-End

REST API que contiene el CRUD para un HOSPITAL: consulta, registro, actualización y borrado de Usuarios, Hospitales y Doctores.

Puntos importantes de la API:

  • Se incluye implementación de JSON Web Tokens para la generación del token de seguridad e enviarlos en los métodos implementados.
  • Se utilizó POO para el diseño de esta solución.
  • Se realizaron 4 controladores para MongoDB -> AuthController, UsersController, HospitalsController y DoctorsController.
  • Se utilizaron Interfaces para poder definir el esquema y comportamiento de los Controladores.
  • En Validators.ts se definen reglas de negocio y lógica intermedia para validación en los controladores.
  • Se crearon 2 Middlewares; ValidateToken.ts que contiene la validación del token de seguridad recibido. Y ValidateFields.ts que contiene la validación de los campos recibidos en los Request, mostrando los errores detectados si fuera el caso.
  • El acceso a datos se encuentra implementado con Mongoose para MongoDB.
  • Para realizar la conexión con la DB se utilizaron Singleton pattern, aplicando static, private, etc.
  • Se implemento un index.html para validar la API desde LocalHost.

Ejemplo Index

Proyecto Escrito 📖

Documentación de API

  • Diagrama de Arquitectura de API REST:

Arquitectura

  • Diagrama de Base de Datos ER: Debido a que la BD es NoSQL, la relación en tablas es logico.

Arquitectura

  • Documentación de Pruebas Unitarias de API con POSTMAN - Descargar JSON.

Construido con 🛠️

  • Node.JS - El framework Node.JS.
  • Mongoose - ‎Modelado ‎‎de objetos MongoDB‎ elegante para ‎‎Node.JS‎
  • TypeScript - Tipeado de JavaScrit con ‎TypeScript.
  • Heroku - Publicada y alojada en Heroku.

Comenzando 🚀

Estas instrucciones te permitirán obtener una copia del proyecto para el funcionamiento en tu máquina local para propósitos de desarrollo y pruebas.

  1. Clone the repo:

    git clone https://github.com/ChuyGonzalez/BK_HospitalApi.git
  2. Install NPM packages:

    npm install
  3. Run Dev:

    npm

    npm run start:dev

    Yarn

    yarn start:dev
  4. Run Build:

    npm

    npm run start

    Yarn

    yarn start
  5. Run Build:

    npm

    npm run build

    Yarn

    yarn build
  6. Run Build && Node dist:

    npm

    npm run start

    Yarn

    yarn start

Pre-requisitos 📋

Base de Datos

Ejecutar los siguientes pasos y comandos en consola de MongoDB:

  1. Crear la Base de Datos con MongoDB - Create Cluster.

  2. Comando para mostrar las Bases de Datos:

    db
  3. Seleccionar la Bases de Datos dbHospital:

    use dbHospital;
  4. Crear la colección de Usuarios:

    db.createCollection("users");
  5. Crear la colección de Hospitales:

     db.createCollection("hospitals");
  6. Crear la colección de Doctores:

     db.createCollection("doctors");

Environment ⚙️

Modificar el archivo .env con tus datos a ocupar de Puerto, Conexión a BD y Secret Key.

Despliegue 📦

  • Para realiza el despligue por favor tome en cuenta los siguientes pasos: Deploy-Keys

  • Encontraras la API publicda en Heroku. Si deseas desglegar tu API ve la siguiente documentación.

Versionado 📌

Usamos SemVer para el versionado. Para ver todas las versiones disponibles, mira los tags en este repositorio.

Autores ✒️

  • Jesús González - Creación, diseño y desarrollo de Proyecto - Chuy Gonzalez.

También puedes mirar la lista de todos los Contribuidores quíenes han participado en este proyecto.


⌨️ por 🤖 Chuy Gonzalez 😊