Módulo 4·proyecto·8h
Objetivos de aprendizaje
- Modelar entidades reales con clases ES6 y aplicar encapsulación
- Manipular el DOM de forma dinámica sin librerías externas
- Implementar comunicación asíncrona con Promises y async/await
- Aplicar delegación de eventos y persistencia con localStorage
Proyecto integrador
Gestor de Tareas — Vanilla JS
Construir un Gestor de Tareas completo que demuestre el dominio de POO, manipulación del DOM, gestión de eventos y comunicación asíncrona, sin usar ninguna librería externa.
Paso a paso
- Define una clase
Tareacon propiedades:id,titulo,descripcion,completadayfechaCreacion. - Define una clase
GestorTareasque administre la colección: métodosagregar,editar,eliminar,filtrarymarcarCompleta. - Implementa una fake-API asíncrona (
fakeFetch) que devuelva Promises con simulación de latencia (300–800 ms) y lance errores aleatorios (~10% de las veces). - Construye la interfaz DOM: formulario de creación, lista de tareas renderizada dinámicamente, y botones de editar, eliminar y completar.
- Usa delegación de eventos en el contenedor de la lista para manejar las acciones de cada tarea.
- Maneja los estados de carga (
loading,error,success) de forma visible en la interfaz. - Persiste las tareas en
localStoragepara que sobrevivan al refresco de página.
Entregable
Sube el link del repositorio GitHub que contenga:
- Los archivos fuente (
index.htmly módulos ES:Tarea.js,GestorTareas.js,api.js,ui.js) README.mdcon descripción de la arquitectura y cómo ejecutar el proyecto- El proyecto debe funcionar correctamente abriendo
index.htmldirectamente en el navegador