/e-learning-system

E-learning System

Primary LanguageJavaScriptMIT LicenseMIT

E-Learning System

Sistema de e-learning usando Express

Getting Started ▶️

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.

Prerequisites 📋

Para usar el presente proyecto es necesario tener instalado:

Installing ⬇️

Para instalar las librerias propias del proyecto ejecute:

npm i

Deployment 📦

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.

Para ejecutar el servidor localmente

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

Para ejecutar el servidor en un contenedor

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

Built With 🛠️

Contributing 👨‍👨‍👦

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Versioning 🚩

Future work 🚀

Contributors 👨‍👨‍👦

Credits ⭐

  • A template to make good README.md - Base template - PurpleBooth

References 🔗

  1. Sequelize-Cli
  2. Sequelize
  3. Express
  4. Swagger

License 📄

This project is licensed under the MIT License - see the LICENSE file for details

Made with ❤️ by Esteban Alvarez