Proyecto
Personal Tasks Manager
Kanban personal fullstack con autenticación OAuth2, AWS serverless y despliegue automatizado con CDK.
Ver en GitHub →Objetivo
Aplicación fullstack serverless para gestionar tareas personales mediante un tablero Kanban. El proyecto sirve como sandbox para explorar arquitectura cloud moderna: autenticación OAuth2 con AWS Cognito, API serverless con Lambda y API Gateway, persistencia con diseño de tabla única en DynamoDB, y frontend React desplegado en S3 + CloudFront. Todo el ciclo de vida de la infraestructura está automatizado con AWS CDK v2 y GitHub Actions.
Cómo funciona
- Autenticación con GoogleEl usuario inicia sesión con su cuenta de Google a través de AWS Cognito con flujo OAuth2 PKCE. Cognito emite los tokens JWT que el frontend usa para autorizar cada petición a la API.
- Gestión de tareas en el KanbanEl frontend React muestra las tareas organizadas en columnas: Backlog → Planificación → Ejecución → Validación → Finalizado, más estados de Pausado y Cancelado. Las tarjetas se pueden crear, editar y mover entre columnas.
- Operaciones CRUD vía APICada acción del usuario (crear, actualizar, mover tarea) dispara una llamada al API Gateway, que enruta la petición a la función Lambda correspondiente. Los tokens JWT se validan en cada request.
- Persistencia en DynamoDBLas tareas y comentarios se almacenan en DynamoDB con diseño de tabla única. Las tareas soportan tipo puntual o recurrente, con campos opcionales de fecha límite y fecha de recurrencia.
- Comentarios por tareaCada tarea tiene su propia sección de comentarios para agregar notas o bitácora de avance, almacenados como items relacionados en la misma tabla DynamoDB.
- Despliegue con CDK y GitHub ActionsLa infraestructura está definida como código con AWS CDK v2. GitHub Actions automatiza el build del frontend (S3 + CloudFront) y el despliegue de las funciones Lambda en cada push a main.
Tipos de tareas
Las tareas pueden ser de tipo puntual (con fecha límite opcional) o recurrente (con fecha de recurrencia). El sistema incluye utilidades de importación y exportación de la base de datos para respaldos manuales.
Servicios AWS
- Lambda (Node.js 24)Funciones backend en TypeScript para CRUD de tareas y comentarios
- API GatewayCapa HTTP que expone los endpoints y valida los tokens Cognito
- DynamoDBTabla única on-demand para tareas y comentarios
- CognitoAutenticación de usuarios con Google OAuth2, flujo PKCE
- S3Hosting del build estático del frontend React
- CloudFrontCDN que sirve el frontend con HTTPS y caché
- Route53DNS y resolución del dominio personalizado
- ACMCertificado TLS gestionado para CloudFront
- CloudFormation / CDK v2Infraestructura como código en TypeScript
Stack