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.
- Puedes encontrar la sección del Proyecto Escrito en la Wiki del proyecto.
- Diagrama de Arquitectura de API REST:
-
Tabla de Documentación de Diseño de métodos - Descargar Excel.
-
Diagrama de Clases de API - Descargar Diagrama.
-
Documentación de API con POSTMAN:
- Diagrama de Base de Datos ER: Debido a que la BD es NoSQL, la relación en tablas es logico.
- Documentación de Pruebas Unitarias de API con POSTMAN - Descargar JSON.
- 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.
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.
-
Clone the repo:
git clone https://github.com/ChuyGonzalez/BK_HospitalApi.git
-
Install NPM packages:
npm install
-
Run Dev:
npm
npm run start:dev
Yarn
yarn start:dev
-
Run Build:
npm
npm run start
Yarn
yarn start
-
Run Build:
npm
npm run build
Yarn
yarn build
-
Run Build && Node dist:
npm
npm run start
Yarn
yarn start
Ejecutar los siguientes pasos y comandos en consola de MongoDB:
-
Crear la Base de Datos con MongoDB - Create Cluster.
-
Comando para mostrar las Bases de Datos:
db
-
Seleccionar la Bases de Datos dbHospital:
use dbHospital;
-
Crear la colección de Usuarios:
db.createCollection("users");
-
Crear la colección de Hospitales:
db.createCollection("hospitals");
-
Crear la colección de Doctores:
db.createCollection("doctors");
Modificar el archivo .env con tus datos a ocupar de Puerto, Conexión a BD y Secret Key.
-
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.
Usamos SemVer para el versionado. Para ver todas las versiones disponibles, mira los tags en este repositorio.
- 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 😊