Skip to content

JoacoNavarre/PI-Dogs-Navarre

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Individual Project - Henry Dogs

Este Proyecto individual realizado en Henry busca poner en páctica las habilidades aprendidas en un a app-catálogo de Dogs

Ojalá les guste!

A little preview

Objetivos del Proyecto

  • Construir una App utlizando React, Redux, Node y Sequelize.
  • Afirmar y conectar los conceptos aprendidos en la carrera.
  • Aprender mejores prácticas.
  • Aprender y practicar el workflow de GIT.
  • Usar y practicar testing.

IMPORTANTE: Es necesario contar minimamente con la última versión estable de Node y NPM. Asegurarse de contar con ella para poder instalar correctamente las dependecias necesarias para correr el proyecto.

Actualmente las versiónes necesarias son:

  • Node: 12.18.3 o mayor
  • NPM: 6.14.16 o mayor

Para verificar que versión tienen instalada:

node -v

npm -v

BoilerPlate

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 api 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 creen desde psql una base de datos llamada dogs

El contenido de client fue creado usando: Create React App.

Enunciado

La idea general es crear una aplicación en la cual se puedan ver distintas razas de perro junto con información relevante de las mismas utilizando la api externa the dog api y a partir de ella poder, entre otras cosas:

  • Buscar perros
  • Filtrarlos / Ordenarlos
  • Agregar nuevos perros

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 ?api_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í.

Tecnologías utilizadas:

  • React
  • Redux
  • Express
  • Sequelize - Postgres

Este Proyecto contiene

Pagina inicial: Una landing page con

  • Alguna imagen de fondo representativa al proyecto
  • Botón para ingresar al home (Ruta principal)

Ruta principal: Contiene

  • Input de búsqueda para encontrar razas de perros por nombre
  • Área donde se verá el listado de razas de perros. Muestra su:
    • Imagen
    • Nombre
    • Temperamento
    • Peso
  • Botones/Opciones para filtrar por:
    • Temperamento
    • Raza existente (es decir las que vienen de la API) o agregada por nosotros (creadas mediante el form)
  • Botones/Opciones para ordenar tanto ascendentemente como descendentemente las razas de perro por:
    • Orden alfabético
    • Peso
  • Paginado para ir buscando y mostrando las siguientes razas, mostrando 8 razas por página.

Ruta de detalle de raza de perro: Contiene

  • Los campos mostrados en la ruta principal para cada raza (imagen, nombre y temperamento)
  • Altura
  • Peso
  • Años de vida

Ruta de creación de raza de perro: Contiene

  • Un formulario controlado con JavaScript con los siguientes campos:
    • Nombre
    • Altura (Diferencia entre altura mínima y máxima)
    • Peso (Diferencia entre peso mínimo y máximo)
    • Años de vida
  • Posibilidad de seleccionar/agregar uno o más temperamentos
  • Botón/Opción para crear una nueva raza de perro

Base de datos

El modelo de la base de datos contiene las siguientes entidades:

  • Raza con las siguientes propiedades:
    • ID *
    • Nombre *
    • Altura *
    • Peso *
    • Años de vida
  • Temperamento con las siguientes propiedades:
    • ID
    • Nombre

Backend

Se debe desarrolló un servidor en Node/Express con las siguientes rutas:

  • GET /dogs:
    • Obtener un listado de las razas de perro
    • Debe devolver solo los datos necesarios para la ruta principal
  • GET /dogs?name="...":
    • Obtener un listado de las razas de perro que contengan la palabra ingresada como query parameter
    • Si no existe ninguna raza de perro mostrar un mensaje adecuado
  • GET /dogs/{idRaza}:
    • Obtener el detalle de una raza de perro en particular
    • Debe traer solo los datos pedidos en la ruta de detalle de raza de perro
    • Incluir los temperamentos asociados
  • GET /temperament:
    • Obtener todos los temperamentos posibles
    • En una primera instancia deberán obtenerlos desde la API externa y guardarlos en su propia base de datos y luego ya utilizarlos desde allí
  • POST /dog:
    • Recibe los datos recolectados desde el formulario controlado de la ruta de creación de raza de perro por body
    • Crea una raza de perro en la base de datos

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published