ES

Project

Personal Tasks Manager

Personal fullstack Kanban with OAuth2 authentication, AWS serverless backend, and automated CDK deployment.

View on GitHub →

Objective

Fullstack serverless application for managing personal tasks through a Kanban board. The project serves as a sandbox to explore modern cloud architecture: OAuth2 authentication with AWS Cognito, serverless API with Lambda and API Gateway, single-table DynamoDB persistence, and a React frontend deployed on S3 + CloudFront. The entire infrastructure lifecycle is automated with AWS CDK v2 and GitHub Actions.


How it works

  1. Google authenticationThe user signs in with their Google account through AWS Cognito using the OAuth2 PKCE flow. Cognito issues JWT tokens that the frontend uses to authorize every API request.
  2. Task management on the Kanban boardThe React frontend displays tasks organized in columns: Backlog → Planning → Execution → Validation → Done, plus Paused and Cancelled states. Cards can be created, edited, and moved between columns.
  3. CRUD operations via APIEach user action (create, update, move task) triggers a call to API Gateway, which routes the request to the corresponding Lambda function. JWT tokens are validated on every request.
  4. Persistence in DynamoDBTasks and comments are stored in DynamoDB using a single-table design. Tasks support one-time or recurring types, with optional deadline and recurrence date fields.
  5. Comments per taskEach task has its own comment section for notes or progress logs, stored as related items in the same DynamoDB table.
  6. Deployment with CDK and GitHub ActionsInfrastructure is defined as code with AWS CDK v2. GitHub Actions automates the frontend build (S3 + CloudFront) and Lambda deployment on every push to main.

Task types

Tasks can be one-time (with an optional deadline) or recurring (with a recurrence date). The system includes database import/export utilities for manual backups.


AWS services


Stack

React 18ViteTypeScriptNode.js 24AWS CDK v2LambdaDynamoDBAPI GatewayCognitoS3CloudFrontRoute53GitHub Actions