En esta entrega se desarrollará el backend del proyecto, para ello se dividió cada funcionalidad/implementación en bandas y asimismo en cada banda se hará una documentación o explicación detallada de lo que se logró desarrollar.
npm install code
Vamos a trabajar el backend con el comando:
npm
Antes de comenzar, instala todos los paquetes:
npm install
Una vez creada la carpeta node_modules comienza el desarrollo.
- Primero inicializamos los servicios de postgres:
sudo service postgresql start
- Luego creamos un superuser con el fin de acceder a postgress con username y password
sudo -u postgres createuser --superuser web_user
- Le colocaremos contraseña al usuario
sudo -i -u postgres
psql
ALTER USER web_user WITH PASSWORD 'haliax'
- Ahora creamos una base de datos para el desarrollo de nuestro proyecto, se mantendrán los nombres del .env
sudo -u postgres createdb web_db_development
- Se linkea el web_user con la base de datos y el hostname (si no se hace arroja error de auntentificación)
sudo -i -u postgres
psql -U web_user -d web_db_development -h 127.0.0.1
- Listo! Ahora se puede ejecutar el proyecto y seguir desarrollando
Para este apartado se correrán las migraciones creadas y luego se procederá a ejecutar las seeders.
- En primer lugar realizamos la migracion a la base de datos(creación de las tablas en la bdd), para ello utilizamos el siguiente comando:
npx sequelize-cli db:migrate
- Luego creamos los datos de las tablas con los seeders que creamos, para esto corremos el siguiente código:
npx sequelize-cli db:seed:all
- Listo! Se encuentran creadas y pobladas nuestras tablas.
- En primer lugar para correr el servidor y que comience a escuchar eventos. Está configurado con nodemon por lo tanto se actualiza inmediatamente 😄
npm start
- Una vez que comiences a desarrollar y agregar features al proyecto procura mantener un código ordenado que siga airbnb , para ello descarga la extension de vscode que se llama eslint, el linter te avisa a tiempo real cualquier falla. La otra opción y la que encuentro más potente, ya que puede arreglar todo el codigo con un simple comando, es lo siguiente:
Para filtrar por archivos, reemplaza el . por el nombre del archivo
npx eslint .
Para fixear todo el proyecto (arregla muchos errores pero los que queden hay que revisarlos manualmente)
npx eslint . --fix
Implementacion del modelo en la base de datos, incluyendo todas las entidades y sus relaciones. ´ Se recomienda documentar el modelo en el README.
Implementacion de lógica de juego, que puede contener algunos errores. Debe tener al menos un ´ GET funcional para obtener el estado de una partida/juego y un POST funcional para enviar una de las jugadas de la partida.
Implementacion de la lógica de juego sin errores. Algunos de los ´ POST que el juego requiera para probar las jugadas que se implementaron pueden tener errores. Debe entregar documentación o un archivo ´ JSON de prueba. Esta parte será evaluada con postman, por lo que no deben tener aún la conexión back y front
Uso de ESLint y Gitflow durante el desarrollo del proyecto. Ademas, no hay errores en los endpoints implementados
Solo para esta entrega se asignara una nota de 7,5 en caso de que haya un avance en la vista del tablero de juego