Giter VIP home page Giter VIP logo

eirete-back's Introduction

Eirete Rest Api

Desarollado con NodeJs, Express, MongoDB, Mongoose, Docker

Sobre el proyecto

Aplicacion RestFull

  • Node.js Como entorno de tiempo de ejecución para ejecutar JavaScript.
  • Express.js Marco de servidor/capa de controlador
  • MongoDB Base de datos
  • Mongoose "ODM"/capa de modelo
  • Docker Servicio contenedor para aislar el entorno.

Preparar la aplicación

  1. Instalar las dependencias
    npm install
  1. Crear en la raíz el archivo .env. Configurar las variables de entorno referenciadas en example.env
  • PORT: Puerto donde corre la aplicación
  • MONGODB_CNN: Cadena de conexion a la base de datos
  • SECRETORPRIVATEKEY: Valor semilla para generar las JWT Token, puede ser cualquier cadena.

Ejecutar la aplicación

    node app.js

Construir con Docker

  1. Crear la imagen
    docker build -t eirete-rest-api:1.0 .
  1. Ejecutar la aplicacion en el contenedor
   docker run  -p 8080:8080 --env-file ./.env  eirete-rest-api:1.0 
  1. Comprobar que el contenedor esté corriendo
$ docker ps

Logs en docker

$ docker logs <container id>

Deploy in Ubuntu server

  • Descargar el codigo desde el github

  • Instalar las dependencias

    npm install

  • Configurar las variables de entorno en el archivo /.env

  • Configurar variables de entorno

  export MONGODB_CNN=
  export SECRETORPRIVATEKEY=
  export PORT=
  • Intall pm2

    sudo npm install pm2 -g

  • Hacer el build

    npm run build

  • Correr la aplicacion

    pm2 --name eirete-back start npm -- start

  • Guardar la configuracion

    pm2 save

  • Configurar el autoinicio

    pm2 startup

Documentación de las APIs

En el navegador:

Estrucutura de la aplicación

  • Los assets contiene los archivos estaticos
  • Los controllers procesamiento de las logica de negocio y interacción con la base de datos
  • Los database configuración de la base de datos
  • Los helpers son funciones útiles de uso común para toda la aplicación .
  • Los models son las definiciones de estuctura de la base de datos Mongoose
  • Los routes rutas declaradas que usan el módulo express.Router
  • Los uploads son los archivos subidos a la aplicacion por medio del API correspóndiente
  • app.js archivo principal el que construye y corre la aplicación express
  • .env. donde se configura las variables de entorno, por seguridad no tiene seguimiento de versiones. .example.env ejemplo de como se configura las variables de entorno
  • swagger-setup.js archivo de configuracion del swagger

Modelo de datos

Diagrama ER

Imagen: assets/documentation/modelo-ER.jpg

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.