El proyecto individual tiene una duración máxima de tres semanas. Se inicia la primera semana con un Kick-Off, y se agendará una corrección personalizada la última semana.
En el caso de completar todas las tareas antes de dicho lapso se podrá avisar a su instructor para coordinar una fecha de presentación del trabajo (DEMO).
Es necesario contar minimamente con la última versión estable de NodeJS y NPM. Asegúrate de contar con ella para poder instalar correctamente las dependecias necesarias para correr el proyecto. Actualmente las versiónes necesarias son:
Para verificar que versión tienes instalada:
node -v
npm -v
ACLARACIÓN: las dependencias actuales se encuentran en las versiones que venimos trabajando durante el bootcamp.
Está permitido, bajo tu responsabilidad, actualizar las dependencias a versiones más actuales si lo deseas. Versiones mas actuales podrían presentar configuraciones diferentes respecto a las versiones en las que venimos trabajando durante el bootcamp.
Deberás forkear este repositorio para tener una copia del mismo en tu cuenta personal de GitHub.
Clona el repositorio en tu computadora para comenzar a trabajar. Este repositorio contiene un BoilerPlate
con la estructura general del proyecto, tanto del servidor como del cliente. El boilerplate cuenta con dos carpetas: api
y client
. En estas carpetas estará el código del back-end y el front-end respectivamente.
En la carpeta api
deberás crear un archivo llamado: .env
que tenga la siguiente forma:
DB_USER=usuariodepostgres
DB_PASSWORD=passwordDePostgres
DB_HOST=localhost
Reemplazar usuariodepostgres
y passwordDePostgres
con tus propias credenciales para conectarte a postgres. Este archivo va ser ignorado en la subida a github, ya que contiene información sensible (las credenciales).
Adicionalmente será necesario que crees, desde psql (shell o PGAdmin), una base de datos llamada dogs
. Si no realizas este paso de manera manual no podrás avanzar con el proyecto.
La idea de este proyecto es construir una aplicación web a partir de la API TheDogApi y en la que se pueda:
⚠️ Para las funcionalidades de filtrado y ordenamiento NO se puede utilizar los endpoints de la API externa que ya devuelven los resultados filtrados u ordenados.
IMPORTANTE: para poder utilizar la API es necesario crear una cuenta y obtener una ApiKey que luego deberá ser incluida en todos los request que hagamos. Esto se logra simplemente agregando ?api_key={YOUR_API_KEY}
al final de cada end-point. Agregar la clave en el archivo .env
para que la misma no se suba al repositorio por cuestiones de seguridad.
Deberás crear dos modelos para tu base de datos. Una será para las razas de perros y la otra será para los temperamentos (pueden llevar el nombre que tu quieras). La relación entre ambos modelos debe ser de muchos a muchos. A continuación te dejamos todas las propiedades que debe tener cada modelo.
📍 MODELO 1 | Dogs
📍 MODELO 2 | Temperaments
Para esta parte deberás construir un servidor utilizando NodeJS y Express. Tendrás que conectarlo con tu base de datos mediante Sequelize.
Tu servidor deberá contar con las siguientes rutas:
Se debe desarrollar una aplicación utilizando React y Redux que contenga las siguientes vistas:
📍 LANDING PAGE | deberás crear una página de inicio o bienvenida con:
home page
.📍 HOME PAGE | la página principal de tu SPA debe contener:
GET /dogs
y deberá mostrar su:
⚠️ IMPORTANTE: se deben mostrar tanto las razas de perros traidas desde la API como así también las de la base de datos, pero NO está permitido almacenar en la base de datos las razas de perros de la API. Solamente se pueden guardar aquellas creadas desde el form.
📍 DETAIL PAGE | en esta vista se deberá mostrar toda la información específica de un perro:
📍 FORM PAGE |: en esta vista se encontrará el formulario para crear una nueva raza de perro.
Este formulario debe ser controlado completamente con JavaScritp. No se pueden utilizar validaciones HTML, ni utilizar librerías especiales para esto. Debe contar con los siguientes campos:
[IMPORANTE]: es requisito que el formulario de creación esté validado sólo con JavaScript. Puedes agregar las validaciones que consideres. Por ejemplo: que el nombre de la raza no pueda contener números, o que el peso/altura mínimo no pueda ser mayor al máximo.
Ten en cuenta que en esta instancia no es obligatorio el desarrollo de testing para tu aplicación. De igual manera, te desafiamos a que los hagas, ¡ya que suman puntos!