Skip to content

Aplicativo web basado en una REST API para gestionar datos médicos: pacientes, doctores y citas. Desarrollado con Node.js, Express y TypeScript, permitiendo capturar, almacenar y mostrar información a través de formularios interactivos y páginas web dinámicas.

Notifications You must be signed in to change notification settings

RaulAJaimes/citas-medicas-ts

Repository files navigation

Tecnologias:

tecnologias.png

Proyecto: Citas Medicas :

El objetivo de este proyecto es desarrollar un aplicativo web (REST API) que permita gestionar la información de pacientes y doctores. El aplicativo deberá cumplir con los siguientes requisitos:

  • Recibir la información de pacientes y doctores a través de formularios web.
  • Almacenar la información en una base de datos.
  • Mostrar la información de pacientes y doctores en una página web.

Características y funcionalidades :

  • Node, Express, Typescript, MySQL and Sequelize as ORM Basic REST API
  • CRUD Operations (A Controller for this)
  • SQL for database: Relational MySQL - Use ORM Sequelize

Documentación de tecnologias :

Installation and Running App ⚡

1. Clone this repo by running the following command :-

 git clone https://github.com/RaulAJaimes/citas-medicas-ts.git
 cd citas-medicas-ts

2. Install the required package :-

 npm install

3. Now run the npm command to start the project :-

 npm run dev

4. 🎉 Open postman and test the rest api on this url https://127.0.0.1:3000

Remember that the .env file must be created for the API to work.

Remember to create the database. It is not necessary to run script to create tables or other specifications, as this is done by the ORM.

Additionally this project uses:

Swagger and Running

Debes tener creada unicamente la base de datos. El ORM se encarga del mapeo entre la especificación en código y la base de datos MySQL.

La base de datos para este ejemplo se llama citasuno.

Debes tener instalado Swagger.

npm install swagger-jsdoc swagger-ui-express
npm install @types/swagger-ui-express @types/swagger-jsdoc --save-dev

Luego debes importarlo en el proyecto en app.ts:

import swaggerUi from 'swagger-ui-express';
import * as swaggerDocument from "./src/swagger.json";

Si te aparece el problema de Cannot find module './src/swagger.json es por la importación de un archivo JSON en TypeScript.

En TypeScript, por defecto, no se pueden importar archivos JSON directamente. Para solucionar este problema, debes habilitar la opción --resolveJsonModule en tu archivo de configuración de TypeScript (tsconfig.json).

Finalmente agrega la ruta para la documentación con Swagger.

app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument));

Con esto, podrás acceder a la documentación de Swagger en la ruta /api-docs de tu aplicación.

Por favor, ten en cuenta que este es un ejemplo básico y puedes necesitar ajustarlo según tus necesidades. Por ejemplo, puedes querer agregar autenticación a la ruta de la documentación de Swagger, o puedes tener otros middlewares que necesiten ser configurados. Te recomiendo que consultes la documentación de swagger-ui-express para obtener más detalles.

Data model

En la carpeta database-citasMedicas-main

Steps

Guía paso a paso para crear una API REST básica con TypeScript, Node.js, Express.js y Sequelize ORM para MySQL:

  1. Inicializa tu proyecto Node.js con el comando npm init. Este comando te guiará para crear un archivo package.json que contendrá las configuraciones básicas de tu proyecto.

  2. Instala las dependencias necesarias para tu proyecto con el siguiente comando:

npm i express nodemon body-parser mysql2 dotenv cors swagger-jsdoc swagger-ui-express

Esto instalará Express.js (un marco de aplicación web), nodemon (para reiniciar automáticamente tu servidor), body-parser (para analizar el cuerpo de las solicitudes HTTP), mysql2 (un controlador MySQL para Node.js), dotenv (para manejar variables de entorno), cors (para habilitar CORS), y swagger-jsdoc y swagger-ui-express (para la documentación de la API).

  1. Instala Sequelize y Sequelize-Typescript con el comando npm install sequelize sequelize-typescript. Sequelize es un ORM para Node.js que soporta la sintaxis de ES6, ES7 y TypeScript.

  2. Instala ts-node y nodemon como dependencias de desarrollo con el comando npm install --save-dev ts-node nodemon. Ts-node te permite ejecutar TypeScript directamente, mientras que nodemon reiniciará tu servidor automáticamente cada vez que hagas un cambio en tu código.

  3. Instala TypeScript como una dependencia de desarrollo con el comando npm install typescript --save-dev.

  4. Instala los tipos de TypeScript para tus dependencias con el comando:

npm i @types/node @types/express @types/body-parser @types/mysql @types/dotenv @types/cors @types/swagger-ui-express @types/swagger-jsdoc --save-dev

Esto te permitirá utilizar TypeScript con Node.js, Express.js, body-parser, mysql, dotenv, cors, swagger-ui-express y swagger-jsdoc.

  1. Inicializa tu configuración de TypeScript con el comando npx tsc --init. Esto creará un archivo tsconfig.json en tu proyecto.

  2. Configura las opciones del compilador de TypeScript en tu archivo tsconfig.json:

"compilerOptions": {
    "target": "es6",   
    "module": "commonjs",
    "outDir": "./dist",
    "strict": true,
    "esModuleInterop": true,
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
}

Esto configurará TypeScript para compilar a ES6, utilizar módulos CommonJS, emitir archivos compilados a la carpeta ./dist, habilitar todas las comprobaciones de tipo estrictas, habilitar la interoperabilidad de módulos ES, y habilitar los decoradores experimentales y la emisión de metadatos de decoradores.

  1. Configura los scripts de tu proyecto en tu archivo package.json:
"scripts": {
    "start": "tsc && nodemon dist/app.js",
    "dev": "tsc && nodemon app.ts"
}

Esto te permitirá iniciar tu proyecto con npm start y ejecutar tu proyecto en modo de desarrollo con npm run dev.

  1. Crea un archivo .env para almacenar tus variables de entorno.

  2. Crea un archivo .gitignore para especificar los archivos y directorios que Git debe ignorar.

¡Y eso es todo! Ahora tienes una base para empezar a construir tu API REST con TypeScript, Node.js, Express.js y Sequelize ORM para MySQL. ¡Buena suerte con tu proyecto! 🚀

About

Aplicativo web basado en una REST API para gestionar datos médicos: pacientes, doctores y citas. Desarrollado con Node.js, Express y TypeScript, permitiendo capturar, almacenar y mostrar información a través de formularios interactivos y páginas web dinámicas.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published