/IIC2513-tarea-3-eanorambuena

tarea-3-eanorambuena created by GitHub Classroom

Primary LanguageJavaScript

Review Assignment Due Date

Tarea 3 🚧

Código 🔣

⚠️ Funcionalidades implementadas y no implementadas

Implimenté todas las funcionalidades requeridas en la tarea.

Ejecución

Instalación e inicialización

Primero se instala Postgresql y luego se ejecutan los siguientes comandos:

cd frontend
yarn
cd ../backend
yarn

Luego, se procede a la configuración de Postgresql, el archivo .env y Sequelize como se indica en los siguientes apartados en el directorio backend/

Si ya está instalado todo, solo se deben iniciar los servidores. Lo más sencillo es abrir dos terminales y ejecutar en una el backend y en la otra el frontend.

Iniciar servidores

Para ejecutar el backend, se deben seguir los siguientes pasos:

cd backend
sudo service postgresql start
yarn dev

Para ejecutar el frontend, se deben seguir los siguientes pasos:

cd frontend
yarn dev

Postgres

Antes de todo, cada vez que se abre la consola por primera vez para trabajar con Postgresql, se debe iniciar el servidor:

sudo service postgresql start
  1. Cómo inicializar psql
sudo -u postgres psql
  1. Cómo crear el usuario de postgres
sudo -u postgres createuser --superuser username
  1. Cómo crear la base de datos
sudo -u postgres createdb db
  1. Cómo crear la clave del usuario
sudo -u postgres psql

Luego, en la consola de psql, se escribe:

ALTER USER username WITH PASSWORD 'password';
\q
  1. Cómo conectarse a la base de datos
psql -U username -d db -h 127.0.0.1
# Ingresar la contraseña (password)

Entorno

Una vez creada la base de datos e inicializado psql, se debe crear un archivo .env en la raíz del directorio backend/, e ingresar los siguientes campos

  1. Indica el usuario de la base de datos DB_USERNAME = username
  2. Indica la contraseña del usuario de la base de datos DB_PASSWORD = password
  3. Indica el nombre de la base de datos DB_NAME = db
  4. Indica el host de la base de datos DB_HOST = 127.0.0.1
  5. Indica el puerto en el que correrá la aplicación PORT = 3000

Sequelize

Primero debe inicializarse Sequelize en el directorio backend/ con el siguiente comando, que creará la base de datos de desarrollo db_development:

yarn sequelize-cli db:create --config=src/config/config.js

User

Este comando fue empleado para crear el modelo User, no se requiere ejecutarlo nuevamente.

yarn sequelize-cli model:generate --name User --attributes username:string

Luego, se modificó el archivo de migración para eliminar la primaryKey id y agregar username como primaryKey. También se modificó el archivo de modelo para agregar username como primaryKey.

Entry

Este comando fue empleado para crear el modelo Entry, no se requiere ejecutarlo nuevamente.

yarn sequelize-cli model:generate --name Entry --attributes id:integer,title:string,body:string,date:date,belongsTo:string

Luego, modificó el archivo de migración para agregar belongsTo como una foreignKey. También se modificó el archivo de modelo para agregar belongsTo como una foreignKey usando el método:

static associate(models) {
  Entry.belongsTo(models.User, {
    foreignKey: 'belongs_to',
    targetKey: 'username'
  });
}

Migraciones

Para ejecutar las migraciones, se debe ejecutar el siguiente comando:

yarn sequelize-cli db:migrate --config=src/config/config.js

Seeds

Para crear los seeds, se debe ejecutó los siguientes comandos. No es necesario ejecutarlos nuevamente.

yarn sequelize-cli seed:generate --name first-users
yarn sequelize-cli seed:generate --name first-entries

Luego, se modificó el archivo de seed para agregar los datos de los usuarios y las entradas.

Para ejecutar los seeds, se debe ejecutar el siguiente comando:

yarn sequelize-cli db:seed:all --config=src/config/config.js

Bibliografia

Usé Github Copilot para autocompletar el código y documentación.