A comprehensive workshop teaching developers how to effectively use AI tools (Cursor, Copilot, Claude) in a structured software development workflow. Built around a full-stack kanban board application with React (TypeScript) frontend and NestJS backend.
This workshop teaches developers how to effectively use AI tools in a structured software development workflow. Participants will learn to be software architects who leverage AI for implementation while maintaining quality, consistency, and maintainability.
By the end of this workshop, you will:
- Design First: Learn to think architecturally before coding
- Context is King: Master providing effective context to AI tools
- Structured Workflow: Follow a proven PRD Analysis β Technical Requirements β Implementation β Testing β Release cycle
- MCP Integration: Leverage Model Context Protocol for enhanced AI capabilities
- Quality Assurance: Maintain code quality when using AI assistance
- Version Control: Manage AI-generated code changes effectively
PRD Analysis β Technical Requirements β Implementation β Testing β Release β Iterate
β β β β β
Analyze Technical AI-Assisted Test Deploy
Requirements Planning (ADR) Development Quality & Monitor
- AI as Implementation Partner: You architect, AI implements
- PRD-Driven Development: Clear requirements lead to better AI output
- Context Rich: More context = better AI assistance
- Quality Gates: Maintain standards through testing and review
- Iterative Process: Continuous improvement and learning
- React with TypeScript
- Vite for build tooling
- ESLint for code linting
- NestJS with TypeScript
- TypeORM for database management
- PostgreSQL database
- Express server
- Node.js 22.15.1 (pinned)
- npm workspaces for monorepo management
- concurrently for running both apps
- ClickUp MCP for PRD management
- ShadCN MCP for UI components
- Postgres MCP for database operations
- Playwright MCP for browser automation and test generation
- Node.js 22.15.1 (use
.nvmrc
for version management) - PostgreSQL database
- npm (comes with Node.js)
- AI tool of choice (Cursor, Copilot, Claude)
- Basic knowledge of React and NestJS
-
Clone and install dependencies:
git clone <repository-url> cd ai-workflow-workshop npm run install:all
-
Database setup:
Option 1: Using Docker (Recommended):
# Run PostgreSQL container docker run --name kanban-postgres -e POSTGRES_DB=kanban_db -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=password -p 5432:5432 -d postgres:15 # To stop the container docker stop kanban-postgres # To start existing container docker start kanban-postgres
Option 2: Using local PostgreSQL installation:
# Create PostgreSQL database createdb kanban_db # Or using PostgreSQL CLI psql -U postgres CREATE DATABASE kanban_db;
-
Environment configuration:
cp .env.example .env # Edit .env with your database credentials
-
Start development servers:
npm run dev
This will start:
- Frontend: http://localhost:5173
- Backend API: http://localhost:3001
Set up Model Context Protocol integrations for enhanced AI capabilities:
- Set up ClickUp MCP for PRD management
- Configure ShadCN MCP for UI components
- Set up Postgres MCP for database operations
- Configure Playwright MCP for browser automation
ai-workflow-workshop/
βββ frontend/ # React TypeScript frontend (foundation setup)
β βββ src/
β β βββ components/ # To be built: KanbanBoard, TaskCard, etc.
β β βββ services/ # To be built: API client
β β βββ types/ # To be built: TypeScript definitions
β β βββ ...
β βββ public/
β βββ package.json
β βββ tsconfig.json
βββ backend/ # NestJS TypeScript backend (foundation setup)
β βββ src/
β β βββ controllers/ # To be built: Task controllers
β β βββ dto/ # To be built: Data transfer objects
β β βββ entities/ # To be built: Database entities
β β βββ services/ # To be built: Business logic
β β βββ modules/ # To be built: Feature modules
β βββ package.json
β βββ tsconfig.json
βββ cypress/ # E2E test framework (configured, tests TBD)
β βββ e2e/ # Test specifications (to be generated)
β βββ support/
βββ templates/ # Templates for PRDs, implementation guides
β βββ implementation/ # Backend, frontend, E2E setup guides
β βββ prd/ # PRD templates for feature development
βββ TaskFlow-*.md # Pre-created PRD examples (6 features)
βββ TODO-IMPLEMENTATION-PLAN.md # Workshop implementation roadmap
βββ package.json # Root workspace config
βββ .env.example # Environment template
βββ README.md # This file
The workshop includes 6 ready-to-use PRD examples for different features:
TaskFlow-Auth-PRD.md
- User authentication and authorizationTaskFlow-Counter-PRD.md
- Task counter and statisticsTaskFlow-Homepage-PRD.md
- Landing page and dashboardTaskFlow-Kanban-PRD.md
- Core kanban board functionalityTaskFlow-Search-Filter-PRD.md
- Search and filtering capabilitiesTaskFlow-Tagging-PRD.md
- Task tagging system
This repository provides a development foundation with:
- π Project structure and configuration files
- π οΈ Development toolchain (React, NestJS, TypeScript)
- ποΈ Database setup with PostgreSQL integration
- π§ͺ Testing framework with Cypress and Playwright
- π¨ UI component library (ShadCN) ready for use
- π Pre-written PRDs for feature implementation
Participants will build the kanban board from scratch using AI-assisted development, starting with basic functionality and progressively adding advanced features.
Objective: Understand the project structure and development environment
Activities:
-
Repository Tour (10 min)
- Explore project structure
- Review existing code patterns
- Understand the baseline kanban application
-
MCP Configuration (15 min)
- Set up ClickUp MCP for PRD management
- Configure ShadCN MCP for UI components
- Set up Postgres MCP for database operations
- Configure Playwright MCP for browser automation
-
AI Tool Setup (5 min)
- Configure your preferred AI tool
- Test basic AI interaction
- Verify MCP connections
Deliverables:
- Working development environment
- Configured MCP connections
- Baseline understanding of the codebase
Objective: Understand PRD analysis and technical requirements planning
Activities:
-
PRD Analysis (20 min)
- Review pre-created TaskFlow PRDs (Auth, Counter, Homepage, Kanban, Search-Filter, Tagging)
- Analyze user stories and acceptance criteria
- Understand business requirements and success criteria
- Choose a feature to implement based on PRD analysis
-
Technical Requirements Planning (20 min)
- Extract technical requirements from chosen PRD
- Define implementation approach and architecture choices
- Create TODO implementation plan with clear steps
- Set up proper context for AI-assisted development
-
PRD Template Review (5 min)
- Review PRD template from
/templates/prd/
for future reference - Understand how PRDs can be created using ClickUp MCP integration
- Learn PRD structure and best practices
- Review PRD template from
Deliverables:
- Selected feature with clear understanding of requirements
- Technical implementation plan and TODO list
- Context preparation for AI-assisted development
Objective: Implement features using AI tools with proper context
Activities:
-
Context Preparation (15 min)
- Review implementation templates
- Prepare context documents for AI
- Set up proper prompting strategies
-
Backend Implementation (20 min)
- Use backend setup guide as AI context
- Implement API endpoints with AI assistance
- Follow NestJS patterns and conventions
- Include proper validation and error handling
-
Frontend Implementation (20 min)
- Use frontend setup guide as AI context
- Implement React components with AI assistance
- Follow existing UI patterns
- Integrate with backend APIs
-
Review & Refactor (5 min)
- Review AI-generated code
- Refactor for consistency and quality
- Ensure adherence to project conventions
Deliverables:
- Working feature implementation
- Clean, maintainable code
- Proper integration between frontend and backend
Objective: Ensure quality through comprehensive testing
Activities:
-
Test Strategy Planning (10 min)
- Review testing strategy template
- Plan unit, integration, and E2E tests
- Identify critical test scenarios
-
AI-Generated Tests (25 min)
- Use AI to generate unit tests for services/components
- Create integration tests for API endpoints
- NLP to Test Workflow:
- Define test scenarios in natural language
- Use Playwright MCP to execute browser actions
- Feed action context back to LLM to generate Cypress tests
- Verify generated test coverage
-
Quality Validation (10 min)
- Run all tests and verify coverage
- Perform code quality checks
- Review accessibility compliance
- Validate performance requirements
Deliverables:
- Comprehensive test suite
- Passing quality gates
- Documentation of test coverage
Objective: Learn advanced AI collaboration techniques
Activities:
-
Complex Feature Implementation (20 min)
- Implement a more complex feature (Authentication, Real-time updates)
- Practice iterative AI collaboration
- Handle edge cases and error scenarios
-
Code Review & Optimization (10 min)
- Review AI-generated code critically
- Identify optimization opportunities
- Refactor for better maintainability
Deliverables:
- Advanced feature implementation
- Optimized, production-ready code
Goal: Build the core kanban board functionality from scratch
Steps:
- Review TaskFlow-Kanban-PRD.md for requirements
- Create technical implementation plan using templates
- Build backend API with task CRUD operations
- Develop frontend kanban components with drag-and-drop
- Generate E2E tests using NLP β Playwright β LLM workflow
- Test and verify functionality
Key Learning: End-to-end AI-assisted development workflow
Goal: Add ability to tag tasks and filter by tags
Steps:
- Analyze TaskFlow-Tagging-PRD.md for requirements
- Design tag data model and relationships
- Document technical implementation plan
- Implement tag management API
- Build tag UI components with ShadCN
- Create filtering and search functionality
- Generate E2E tests:
- Describe tag workflows in natural language
- Use Playwright to record user interactions
- Convert Playwright actions to Cypress tests via LLM
Key Learning: Complex feature design with AI-assisted testing
Goal: Implement user authentication and authorization
Steps:
- Review TaskFlow-Auth-PRD.md for security requirements
- Research authentication strategies and create technical plan
- Implement JWT-based auth system
- Build login/register components
- Add authorization guards and middleware
- Advanced Testing Workflow:
- Define security test scenarios in natural language
- Use Playwright to simulate authentication flows
- Generate comprehensive Cypress security tests via LLM
- Document security considerations and implementation
Key Learning: Security implementation with AI-assisted comprehensive testing
-
Provide Complete Context
- Share relevant PRDs and technical requirements
- Include existing code patterns
- Specify technology stack and versions
-
Be Specific About Requirements
- Clear acceptance criteria
- Specific error handling needs
- Performance requirements
- Accessibility standards
-
Iterative Refinement
- Start with basic implementation
- Iteratively improve with AI feedback
- Ask AI to explain decisions
- Request multiple implementation options
-
Consistent Patterns
- Reference existing code examples
- Follow established conventions
- Maintain consistent file structure
-
Testing First
- Generate tests alongside implementation
- Verify AI-generated test coverage
- Include edge case testing
-
Documentation
- Update documentation as you build
- Keep technical requirements current with decisions
- Document any deviations from standards
β Don't: Blindly accept all AI suggestions
β
Do: Review and understand AI-generated code
β Don't: Skip documentation and planning phases
β
Do: Follow the complete workflow cycle
β Don't: Ignore existing code patterns
β
Do: Maintain consistency with established conventions
β Don't: Forget to test AI-generated code
β
Do: Create comprehensive test coverage
After each module, evaluate your progress:
Design & Documentation:
- Can analyze PRDs and extract clear requirements
- Able to create technical implementation plans
- Understand how to break down complex features
AI Collaboration:
- Provide effective context to AI tools
- Generate high-quality code with AI assistance
- Review and refactor AI-generated code appropriately
Implementation Quality:
- Follow established code patterns and conventions
- Implement proper error handling and validation
- Create maintainable, readable code
Testing & QA:
- Generate comprehensive test suites
- Verify code quality and coverage
- Ensure accessibility and performance standards
- Feature Completion: Fully functional implemented features
- Code Quality: Clean, maintainable, well-tested code
- Documentation: Complete PRDs analysis and technical implementation plans for all features
- Process Adherence: Following the complete workflow cycle
- AI Effectiveness: Efficient AI collaboration with good outcomes
npm run dev
- Start both frontend and backend in development modenpm run build
- Build both applications for productionnpm run install:all
- Install dependencies for all workspacesnpm run lint
- Run linting for frontend
npm run dev:frontend
- Start frontend development servernpm run build:frontend
- Build frontend for productionnpm run lint:frontend
- Run ESLint on frontend code
npm run dev:backend
- Start backend development servernpm run build:backend
- Build backend for production
Copy .env.example
to .env
and configure:
# Database Configuration
DATABASE_HOST=localhost
DATABASE_PORT=5432
DATABASE_USERNAME=postgres
DATABASE_PASSWORD=your_password
DATABASE_NAME=kanban_db
# Application Environment
NODE_ENV=development
# Backend Configuration
BACKEND_PORT=3001
# Frontend Configuration
FRONTEND_PORT=5173
VITE_API_URL=http://localhost:3001/api
- Type: PostgreSQL
- ORM: TypeORM
- Auto-sync: Enabled in development (disabled in production)
- Migration: Handled by TypeORM
Backend API is available at http://localhost:3001/api
- CORS enabled for frontend communication
- Global API prefix:
/api
-
Start development environment:
npm run dev
-
Make changes to frontend (
/frontend/src
) or backend (/backend/src
) -
Hot reload is enabled for both applications
-
Database changes are automatically synchronized in development
# Build both applications
npm run build
# Frontend build output: frontend/dist/
# Backend build output: backend/dist/
- Practice: Continue implementing the remaining features
- Experiment: Try different AI tools and approaches
- Share: Document your learnings and share with the team
- Scale: Apply these patterns to your real projects
Please provide feedback on:
- Workshop pacing and content
- Template effectiveness
- AI tool integration quality
- Additional topics you'd like to see
Remember: The goal is not to replace your thinking with AI, but to amplify your capabilities as a software architect and developer.
MIT License - feel free to use this project for your own purposes.