Sistema de e-learning usando Express
Estas instrucciones le proporcionarán una copia del proyecto en funcionamiento en su máquina local para fines de desarrollo y prueba. Consulte la implementación para obtener notas sobre cómo implementar el proyecto en un sistema en vivo.
Para usar el presente proyecto es necesario tener instalado:
- Node y Npm
- Docker
- Docker-Compose
- Sequelize-CLI (Globalmente)
Para instalar las librerias propias del proyecto ejecute:
npm i
Para iniciar el proyecto es necesario tener una instancia de Postgres. Para ello ingrese su configuracion en un archivo config.json
con un formato similar al archivo src/db/config/config.example.json
e ingrese las mismas en el archivo docker-compose.yml
.
Ejecute el archivo docker-compose.yml
con:
docker-compose up -d
Cree la base de datos con el comando:
sequelize db:create --env="value"
Agregue modelos con el comando:
sequelize model:generate --name User --attributes firstName:string,lastName:string
value
puede tomar los valores: development
, test
, production
Ejecute la migracion con:
sequelize db:migrate --env="value"
Ejecutar los seeders:
sequelize db:seed:all --env="value"
Inicie el servidor con el comando:
nodemon
Cambie el valor de host en el archivo config.json
de Postgres por postgres-cont
, y ejecute los servicios con:
docker-compose up -d
Cree una nueva red para los 3 contenedores:
docker network create net-node
Conecte los servicios a la red:
# Postgres
docker network connect net-node postgres-cont
# Adminer
docker network connect net-node adminer-cont
Crear imagen de la aplicacion de node
docker build . -t app:latest
Ejecute el contenedor de node:
# app es el nombre de la imagen
docker run -it --name node-app -p 5000:5000 app bash
En otra terminal conecte el contenedor de node a la red:
docker network connect net-node node-app
Ahora en la terminal de contenedor ejecute los comandos de sequelize:
# Create db
sequelize db:create --env=development
# Exec migrations on db
sequelize db:migrate --env=development
# Exec seeders on db
sequelize db:seed:all --env=development
Ejecute el servidor:
node server.js
Para ver la documentacion ingrese a la ruta: http://localhost:5000/api/docs
Para ejecutar los tests es necesario ejecutar los comandos de sequelize con la bandera --env=test
Ejecute los tests con:
npm run test
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
- Esteban Alvarez - Initial work - @alvarez98
- A template to make good README.md - Base template - PurpleBooth
This project is licensed under the MIT License - see the LICENSE file for details
Made with ❤️ by Esteban Alvarez