Skip to content

aro1976/kiro-showcase-kanban

Repository files navigation

Kanban Board

A Kanban board application with TODO, DOING, and DONE columns. Create cards, drag them between columns, and delete them. Authenticated via Cognito.

Documentation

  • Product — Features, API, and backlog
  • Tech — Stack, project structure, data model, key decisions
  • Deployment — AWS resources, deploy commands, environment setup

Tech Stack

  • Frontend: React + Vite + shadcn/ui (v4) + @dnd-kit + amazon-cognito-identity-js
  • Backend: AWS Lambda + API Gateway + DynamoDB + Cognito (CDK)
  • Local dev: Express server with in-memory store

Local Development

# Install dependencies
cd backend && npm install
cd ../frontend && npm install

# Terminal 1 — Start backend (port 3001, in-memory store)
cd backend && npm run dev

# Terminal 2 — Start frontend (port 5173)
cd frontend && npm run dev

Open http://localhost:5173

Note: Local dev uses in-memory store and skips Cognito auth. Set VITE_USER_POOL_ID and VITE_CLIENT_ID in frontend/.env to test auth locally against a deployed Cognito pool.

Testing

cd backend && npm test

Deploy to AWS

Requires AWS CLI configured with clouddog-dev profile.

# Build frontend
cd frontend && npm run build

# Deploy everything
cd ../backend && npx cdk deploy --profile clouddog-dev

Outputs: CloudFront URL, API URL, UserPoolId, UserPoolClientId.

After first deploy, update frontend/.env with the Cognito IDs from the CDK output, rebuild, and sync to S3:

aws s3 sync frontend/dist s3://BUCKET_NAME --delete --profile clouddog-dev
aws cloudfront create-invalidation --distribution-id DIST_ID --paths "/*" --profile clouddog-dev

API

Method Path Auth Body Description
GET /cards JWT List all cards
POST /cards JWT {text, column?} Create card (defaults to TODO)
PATCH /cards/{id} JWT {column} Move card
DELETE /cards/{id} JWT Delete card

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors