Giter Club home page Giter Club logo

raulajaimes / citas-medicas-ts Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 260 KB

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.

TypeScript 100.00%
backend database express modelo-relacional mysql nodejs sequelize typescript api api-rest

citas-medicas-ts's Introduction

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! 🚀

citas-medicas-ts's People

Contributors

raulajaimes avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.