Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

To Do List con TypeScript, Redis, ioredis y Docker

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

Tecnologías

  • 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.

Requisitos

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 pnpm localmente para el modo Docker: los contenedores los administran.

Ejecutar el proyecto

Cloná el repositorio y entrá a su carpeta:

git clone URL_DE_TU_REPOSITORIO
cd paradigmas3-redis

Construí las imágenes e iniciá los servicios:

docker compose up --build

Cuando 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.

Ejecutar en segundo plano

Si preferís liberar la terminal:

docker compose up --build -d

Para consultar los registros:

docker compose logs -f

Para detener los contenedores:

docker compose down

docker 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 -v

Comprobar que Docker y Redis funcionan

Verificá el estado de ambos contenedores:

docker compose ps

La 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.

Validar las tareas guardadas en Redis

Creá o eliminá tareas desde la interfaz web y luego consultá la key usada por la app:

docker compose exec redis redis-cli GET todos

La 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-cli

Dentro 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.

Ejecutar sin Docker (opcional)

Necesitás Redis disponible en localhost:6379 y Node.js instalado. Luego:

pnpm install
pnpm dev

Podés cambiar la conexión usando la variable REDIS_URL:

REDIS_URL=redis://localhost:6379 pnpm dev

En PowerShell:

$env:REDIS_URL = "redis://localhost:6379"
pnpm dev

API

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.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages