Aplicación web de lista de tareas.
Incluye una interfaz HTML, una API en TypeScript/Express y persistencia de tareas en Redis a través de ioredis.
El proyecto está preparado para ejecutarse por completo en contenedores: Docker Compose crea la aplicación y Redis, y los conecta entre sí.
- Frontend: HTML, CSS y JavaScript.
- Backend: Node.js, TypeScript y Express.
- Base de datos: Redis 7.
- Cliente Redis:
ioredis. - Dependencias:
pnpm. - Contenedores: Docker y Docker Compose.
Para ejecutar la aplicación solo necesitás tener instalado:
- Git
- Docker Desktop, abierto y en ejecución.
No hace falta instalar Node.js, Redis ni
pnpmlocalmente para el modo Docker: los contenedores los administran.
Cloná el repositorio y entrá a su carpeta:
git clone URL_DE_TU_REPOSITORIO
cd paradigmas3-redisConstruí las imágenes e iniciá los servicios:
docker compose up --buildCuando aparezca este mensaje, la aplicación está lista:
Todo app disponible en http://localhost:3000
Abrí http://localhost:3000 en el navegador. Para detener los servicios, presioná Ctrl + C en esa consola.
Si preferís liberar la terminal:
docker compose up --build -dPara consultar los registros:
docker compose logs -fPara detener los contenedores:
docker compose downdocker compose down no borra las tareas: Redis usa el volumen persistente redis-data.
Si querés eliminar también las tareas guardadas:
docker compose down -vVerificá el estado de ambos contenedores:
docker compose psLa salida esperada debe mostrar los servicios app y redis en estado Up
Redis también mostrará el estado healthy
La aplicación publica el puerto 3000, por lo que se verá 0.0.0.0:3000->3000/tcp.
La aplicación se conecta a Redis usando esta dirección interna de Docker:
redis://redis:6379
redis es el nombre del servicio definido en docker-compose.yml; Docker Compose crea una red interna y permite que el backend lo encuentre por ese nombre.
Creá o eliminá tareas desde la interfaz web y luego consultá la key usada por la app:
docker compose exec redis redis-cli GET todosLa key todos guarda un arreglo JSON, por ejemplo:
[{"id":"abc123","text":"Estudiar Redis","completed":false,"createdAt":"2026-08-19T12:00:00.000Z"}]Para entrar a la consola interactiva de Redis:
docker compose exec redis redis-cliDentro de ella podés ejecutar:
KEYS * # muestra las keys disponibles
TYPE todos # confirma que todos es una key de tipo string
GET todos # muestra las tareas actuales
EXISTS todos # devuelve 1 si la key existe
DEL todos # elimina todas las tareas
MONITOR # muestra GET y SET en tiempo real
Para ver cómo la app guarda cambios, dejá MONITOR ejecutándose en una terminal y creá, completá o eliminá una tarea en el navegador. Verás las operaciones GET todos y SET todos ... realizadas por el backend.
Necesitás Redis disponible en localhost:6379 y Node.js instalado. Luego:
pnpm install
pnpm devPodés cambiar la conexión usando la variable REDIS_URL:
REDIS_URL=redis://localhost:6379 pnpm devEn PowerShell:
$env:REDIS_URL = "redis://localhost:6379"
pnpm dev| Método | Ruta | Descripción |
|---|---|---|
GET |
/api/todos |
Obtiene todas las tareas. |
POST |
/api/todos |
Crea una tarea. Recibe { "text": "Mi tarea" }. |
PATCH |
/api/todos/:id |
Actualiza text o completed. |
DELETE |
/api/todos/:id |
Elimina una tarea. |