Loading repository data…
Loading repository data…
hbonavota / repository
"Videogames" fue el proyecto individual que tuve asignado en la que constaba en construir una App en un periodo de 3 semanas como deadline, programando en Javascript y utilizando las tecnologias de React, Redux, Sequelize, Sqlite, postgresql. Para los estilos utilice CSS puro, dado que así era el requerimiento.
La idea general fué crear una aplicación en la cual se puedan ver los distintos videojuegos disponibles junto con información relevante de los mismos utilizando la api externa rawg y a partir de ella poder, entre otras cosas:
Aplicación de React/Redux que contenga las siguientes /rutas.
Pagina inicial: LandingPage con
Ruta principal)Ruta principal:
Al ingresar al Home se tienen que renderizar los videojuegos y las siguientes opciones detalladas.
Input de búsqueda para encontrar videojuegos por nombre que hagan match con la base de datos y la vez también con la api
Área donde se verá el listado de videojuegos. Deberá mostrar su:
Botones/Opciones para filtrar por género y por videojuego existente o agregado por nosotros en la base de datos.
Botones/Opciones para ordenar tanto ascendentemente como descendentemente los videojuegos por orden alfabético, cantidad de palabras y por rating.
Paginado para ir buscando y mostrando los siguientes videojuegos, mostrar 15 juegos por pagina. Solo almacenar 100.
Ruta de detalle de videojuego: debe contener
Ruta de creación de videojuegos: debe contener
IMPORTANTE: No se permitirá utilizar librerías externas para aplicar estilos a la aplicación. Tendrán que utilizar CSS con algunas de las opciones que vimos en dicha clase (CSS puro, CSS Modules o Styled Components)
Desarrollar un servidor en Node/Express con las siguientes rutas:
IMPORTANTE: No está permitido utilizar los filtrados, ordenamientos y paginados brindados por la API externa, todas estas funcionalidades tienen que ser implementadas.
El modelo de la base de datos deberá tener las siguientes entidades (Aquellas propiedades marcadas con asterísco deben ser obligatorias):
La relación entre ambas entidades debe ser de muchos a muchos ya que un videojuego puede pertenecer a varios géneros en simultaneo y, a su vez, un género puede contener múltiples videojuegos distintos. Un ejemplo sería el juego Counter Strike pertenece a los géneros Shooter y Action al mismo tiempo. Pero a su vez existen otros videojuegos considerados como Shooter o como Action.
IMPORTANTE: Pensar como modelar los IDs de los videojuegos en la base de datos. Existen distintas formas correctas de hacerlo pero tener en cuenta que cuando hagamos click en algun videojuego, este puede provenir de la API o de la Base de Datos por lo que cuando muestre su detalle no debería haber ambigüedad en cual se debería mostrar. Por ejemplo si en la API el videojuego Age of Empires II: Age of Kings tiene id = 1 y en nuestra base de datos creamos un nuevo videojuego Age of Henry con id = 1, ver la forma de diferenciarlos cuando querramos acceder al detalle del mismo.
El proyecto tendrá una duración máxima de tres semanas.
Indicaciones para Testing:
Para poder ejecutar el proyecto correctamente deberán tener en cuenta las siguientes indicaciones. Si tienes alguna consulta o duda con la instalación puedes escribirme sin problema --> aqui
Git clone https://github.com/hbonavota/-PI-Videogame-FT15a.git
/api crear un archivo llamado: .env que tenga la siguiente forma:Para Crear la ApiKey tienen que ingresar a la página de rawg, es gratuita, no demora más de 10min crear una Apikey. Click aqui para crearla --> rawg
Reemplazar usuariodepostgres y passwordDePostgres con tus propias credenciales para conectarte a postgres.
Si no tienes postgresql tienes que descargarlo aqui --> . Postgresql
DB_USER=usuariodepostgres
DB_PASSWORD=passwordDePostgres
DB_HOST=localhost
DB_PORT=3001
API_KEY= ApiKey
videogames. El comando dentro de la terminal de psql es :CREATE DATABASE videogames;
/PI-Videogames/api (main)
npm i
/PI-Videogames/client (main)
npm i
/PI-Videogames/api (main)
npm start
/PI-Videogames/client (main)
npm start