Dapplets Project
Hay que implementar una página basada en el diseño de Figma (sin preloader) usando el framework React y el lenguaje
TypeScript:TypeScript
Diseño:
https://www.figma.com/file/YGXq1mzXTTc4Rfwt5vxgUo
Presentación del diseño:
https://www.figma.com/proto/YGXq1mzXTTc4Rfwt5vxgUo
Requisitos:
- Diseño adaptable para dispositivos de escritorio y móviles.
- Búsqueda difusa y en vivo (filtro en vivo).
- Uso de debounce con filtrado final en el cliente.
- El servidor puede devolver elementos "no aptos" que no pasen el filtro. Estos deben ser descartados y se debe solicitar otro lote de datos para reemplazarlos.
- Paginación (a medida que se desplaza).
- Manejo de errores del servidor (mostrar en el área de mensajes).
- Manejo de errores de descarga de imágenes.
- Estado de la interfaz guardado en LocalStorage (instalado/no instalado).
- Drag & drop para ordenar elementos de la lista.
- Conectar el backend https://dapplets-hiring-api.herokuapp.com/
Resultado de la prueba técnica:
- Enlace al proyecto publicado en Github.
- Enlace a la demostración en vivo del proyecto en cualquier hosting (por ejemplo, Netlify).
Estructura y funcionalidad del diseño en FigmaFigma:
(no es necesario implementar otros elementos del diseño):
- Barra de búsqueda + botón para ordenar.
- Barra de mensajes de estado y errores (en la parte superior).
- Lista de elementos (Items).
- Icono generado por el usuario.
- Texto del nombre (una línea).
- Texto de descripción (multilínea).
- Etiquetas estáticas (varias).
- Botón híbrido (estado/acción) con 2 estados y rollover.
-
Si la aplicación no está instalada, debe mostrarse "INSTALL".
- Si la aplicación está instalada, debe mostrarse "INSTALLED" y al pasar el cursor sobre el texto, debe cambiar a "UNINSTALL". Este estado se guarda en localstorage para que no se pierda al recargar la página.
Icono
generado por el usuario. -
Texto
- Al hacer clic en un elemento de la lista, se abre un acordeón (desplegar la aplicación).
- Drag and drop de los elementos de la lista (reordenación manual). En el diseño hay una "zona de captura".
Carga paginada a medida que se desplaza.Loader con animación.- Adaptabilidad para dispositivos móviles y de escritorio.
-
- Loader con animación.
- Loader con animación.
-
- Adaptabilidad para dispositivos móviles y de escritorio.
-
- Movimiento de bloques en diferentes dispositivos.
- Ocultación de funcionalidades adicionales en dispositivos móviles.
Propiedades del BackendBackend con API HTTP.Las
imágenes pueden no estar disponibles. Pueden ser pesadas.El servidor de imágenes puede tardar en responder.Filtrado en el servidor*.Ordenación en el servidor*.Carga paginada*.Devuelve enlaces a imágenes ubicadas en otro servidor.Devuelve una lista de aplicaciones.Devuelve una lista de etiquetas.Puede devolver títulos o descripciones demasiado largos.Puede tardar en responder.Puede devolver errores.Puede fallar y devolver una respuesta no válida.
Especificación del backend:https://dapplets-hiring-api.herokuapp.com/ -