Buscador de Cómics
⚙️ Consigna
En este proyecto vas a crear una aplicación que permita listar cómics y personajes de comics, y obtener información sobre los mismos. Para eso utilizarás una API REST con datos reales, realizarás consultas a la misma pasándole distintos parámetros que permitan personalizar la búsqueda y mostrarás los datos obtenidos como respuesta.
👀 Ejemplo
Puedes ver un ejemplo funcional del proyecto siguiendo este link.
👍 Criterios de aceptación
Los requisitos mínimos para que el proyecto sea considerado para la entrega son:
- Debe respetar el diseño general dado. Pueden modificarse a gusto colores, fondo, fuentes e íconos
- Debe ser responsive
- Debe cumplir con las funcionalidades principales listadas en la sección siguiente
- Debe hacer hacer uso de un preprocesador CSS
- Debe estar deployado y ser accesible desde una dirección web
- No se debe trabajar en la rama
main
. Enmain
sólo van a mergearse las demás ramas, por lo que cadacommit
demain
debería ser elmerge
de unabranch
de una funcionalidad terminada - Cada funcionalidad que se agregue debe hacerse mediante un PR (Pull Request)
🎛 Funcionalidades principales
- Se debe poder realizar una búsqueda de cómics
- Se debe poder realizar una búsqueda por título
- Se debe poder ordenar los resultados alfabéticamente y por fecha de lanzamiento, en orden ascendente y descendente
- Se debe poder realizar una búsqueda de personajes de cómics
- Se debe poder realizar una búsqueda por nombre
- Se debe poder ordenar los resultados alfabéticamente, en orden ascendente y descendente
- Se debe mostrar la información de un cómic (al clickear sobre el mismo)
- Portada
- Título
- Fecha de lanzamiento
- Guionistas
- Descripción
- Personajes incluidos
- Se debe mostrar la información de un personaje (al clickear sobre el mismo)
- Imagen
- Nombre
- Descripción
- Cómics en los que aparece
- Se debe mostrar el total de resultados en los casos en los que se listen cómics o personajes
- Debe contar con un paginado
- Se debe mostrar 20 resultados por página
- Se debe poder ir a la primera página
- Se debe poder ir a la última página
- Se debe poder ir a la página siguiente
- Se debe poder ir a la página anterior
- Se deben deshabilitar los botones correspondientes cuando no puedan ser utilizados (por ejemplo, si se está en la última página, no se debe poder utilizar el botón de ir a la última página ni el de avanzar página)
💪 Desafíos extra (opcionales)
- Agregar la cantidad de páginas y la p´agina actual en el paginado
- Agregar la posibilidad de ir a una página espec´ífica (mediante un select)
- Cuando se realiza una búsqueda de cómics o personajes, y luego se clickea en uno para ver los detalles, perdemos la búsqueda realizada y la página en la que estábamos. Agregar un botón que permita ir a la página exacta de la última búsqueda realizada.
- Agregar modo oscuro
📝 Criterios de evaluación
- Menos de 6 (No aprobado)
- 6 (Aprobado)
- Respeta la consigna
- Respeta el diseño dado
- Respeta el funcionamiento
- Responsive funciona correctamente
- 7 (Bueno)
- HTML semántico
- Código bien indentado
- Buenos nombres de clases
- Buenos nombres de funciones y variables
- Uso de variables (SASS)
- 8 (Muy bueno)
- Buena estructura y separación de archivos (SASS)
- Correcto uso de estilos anidados (SASS)
- Nombres de branchs adecuados
- 9 (Muy bueno)
- Componentización de estilos (SASS)
- Funciones pequeñas
- Lógica clara y simple
- Separación clara de manejo de datos y visualización
- 10 (Excelente)
- Reutilización de lógica / funciones
- Commits con mensajes adecuados
- Un PR por funcionalidad, fix o mejora
- PRs con buenos títulos
🧰 Marvel API
La API que vamos a utilizar para este proyecto es la de Marvel Cómics.
Una vez que nos registramos, tenemos que agregar los dominios desde los que vamos a estar utilizando la API en la sección de Your authorized referrers
- Para trabajar de forma local, hay que agregar
127.0.0.1*
ylocalhost
- Una vez que deployamos el proyecto, tenemos que agregar la URL, por ejemplo:
adacomics.netlify.com
- Para hacer pruebas en la documentación interactiva, tenemos que agregar
developer.marvel.com
(opcional)
Para evitar problemas con CORS, se recomienda correr el proyecto usando la extensión Live Server de VSCode