- Construir una App utlizando React, Redux, Node y Sequelize.
- Afirmar y conectar los conceptos aprendidos en la carrera.
- Aprender mejores prácticas.
- React JS
- React-Router-Dom
- Redux
- NodeJS
- PostgresSQL
- Sequelize
La idea general es 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:
- Buscar videjuegos
- Filtrarlos / Ordenarlos
- Agregar nuevos videojuegos
IMPORTANTE: Para poder utilizar esta API externa es necesario crearse una cuenta para obtener una API Key que luego debera ser incluida en todos los request que hagamos a rawg simplemente agregando ?key={YOUR_API_KEY}
al final de cada endpoint. Agregar la clave en el archivo .env
para que la misma no se suba al repositorio por cuestiones de seguridad y utilizarla desde allí.
IMPORTANTE: Para las funcionalidades de filtrado y ordenamiento NO pueden utilizar los endpoints de la API externa que ya devuelven los resultados filtrados u ordenados sino que deben realizarlo ustedes mismos. En particular alguno de los ordenamientos o filtrados debe si o si realizarse desde el frontend.
- GET https://api.rawg.io/api/games
- GET https://api.rawg.io/api/games?search={game}
- GET https://api.rawg.io/api/genres
- GET https://api.rawg.io/api/games/{id}
Se debe desarrollar una aplicación de React/Redux que contenga las siguientes pantallas/rutas.
Ruta de detalle de videojuego:
Ruta de creación de videojuegos:
El modelo de la base de datos deberá tener las siguientes entidades (Aquellas propiedades marcadas con asterísco deben ser obligatorias):
- Videojuego con las siguientes propiedades:
- ID: * No puede ser un ID de un videojuego ya existente en la API rawg
- Nombre *
- Descripción *
- Fecha de lanzamiento
- Rating
- Plataformas *
- Genero con las siguientes propiedades:
- ID
- Nombre
Se debe desarrollar un servidor en Node/Express con las siguientes rutas:
- GET /videogames:
- Obtener un listado de los videojuegos
- Debe devolver solo los datos necesarios para la ruta principal
- GET /videogames?name="...":
- Obtener un listado de las primeros 15 videojuegos que contengan la palabra ingresada como query parameter
- Si no existe ningún videojuego mostrar un mensaje adecuado
- GET /videogame/{idVideogame}:
- Obtener el detalle de un videojuego en particular
- Debe traer solo los datos pedidos en la ruta de detalle de videojuego
- Incluir los géneros asociados
- POST /videogames:
- Recibe los datos recolectados desde el formulario controlado de la ruta de creación de videojuego por body
- Crea un videojuego en la base de datos, relacionado a sus géneros.
- GET /genres:
- Obtener todos los tipos de géneros de videojuegos posibles
- En una primera instancia deberán traerlos desde rawg y guardarlos en su propia base de datos y luego ya utilizarlos desde allí