Skip to content

About

Canned GitHub Copilot demo kit for building and testing a Flutter app from business requirements

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

GitHub Copilot Flutter Demo Kit

A reusable presenter utility for demonstrating how GitHub Copilot turns business requirements into a planned, implemented, and tested Flutter application.

The scenario builds a role-based Campus Complaints app with Material 3, Riverpod, responsive layouts, in-memory data, and automated tests. Every presentation can start from the same disposable Git baseline without modifying this utility repo.

Repository: AkashAi7/github-copilot-flutter-demo-kit

What It Demonstrates

  • Planning a Flutter application from a real business requirements document
  • Applying repository instructions and reusable Copilot prompt files
  • Coordinating multi-file implementation in Copilot Agent mode
  • Building responsive mobile and web layouts with role-based behavior
  • Adding Riverpod state management and deterministic domain logic
  • Generating focused unit and widget tests
  • Running formatting, static analysis, and tests from Copilot Chat
  • Reviewing the resulting implementation against its requirements

Prerequisites

  • Windows with PowerShell 5.1 or later
  • Flutter 3.47 or a compatible stable release on PATH
  • Git on PATH for the disposable baseline commit
  • Visual Studio Code
  • GitHub Copilot and Flutter extensions for Visual Studio Code
  • An authenticated GitHub Copilot account

Check the local toolchain before presenting:

flutter doctor
git --version
code --version

Quick Start

Clone the kit, then launch the standard canned 20-minute demo:

git clone https://github.com/AkashAi7/github-copilot-flutter-demo-kit.git
cd github-copilot-flutter-demo-kit
.\scripts\start-canned-demo.ps1

From an existing clone, the launcher is one command:

.\scripts\start-canned-demo.ps1

For the extended demo:

.\scripts\start-canned-demo.ps1 -Duration 40

The canned launcher:

  1. Verifies Flutter, Git, VS Code, and the Flutter extension, and reports whether Copilot is standalone or integrated into VS Code.
  2. Safely resets and validates the disposable workspace.
  3. Creates a duration-specific START_HERE.md presenter cue card.
  4. Commits a clean Git baseline.
  5. Opens the workspace, cue card, and BRD in VS Code.

Follow the cue card and run the prompts in order. The underlying generator:

  1. Creates a new Flutter app under %LOCALAPPDATA%\GHCP-Demos\Flutter-Campus-Complaints.
  2. Installs the starter app, BRD, architecture documentation, Copilot instructions, and staged prompt files.
  3. Adds Riverpod and restores Flutter dependencies.
  4. Runs the starter widget test.
  5. Initializes Git and creates a clean baseline commit.
  6. Opens the generated workspace when -Open is supplied.

In the generated workspace, open Copilot Chat and run:

/demo-01-plan
/demo-02-shell

This is the core 20-minute flow. Continue with the following prompts for the extended scenario:

/demo-03-complaint
/demo-04-review

See demo/DEMO_GUIDE.md for the complete 20-minute and 40-minute presenter scripts, talking points, and suggested browser interactions.

Prompt Stages

Prompt Capability demonstrated Expected result
/demo-01-plan Requirements analysis and planning A scoped implementation plan with architecture and validation steps
/demo-02-shell Autonomous multi-file implementation Responsive role-aware Material 3 shell with Riverpod and widget tests
/demo-03-complaint Feature development from requirement IDs Tested complaint form, validation, review, persistence, and reference number
/demo-04-review Evidence-based code review and repair Targeted fixes followed by clean analysis and tests

The prompts are stored in .github/prompts, and workspace coding conventions are defined in .github/copilot-instructions.md.

Reset Between Demos

Recreate the workspace from its known starting point. The reset also works while the generated VS Code workspace is open:

.\scripts\new-ghcp-demo.ps1 -Reset -Open

Reset is guarded by a marker file. The script refuses to delete a destination it did not generate, except when recovering an empty directory left by an interrupted reset.

To use a different location:

.\scripts\new-ghcp-demo.ps1 `
	-Destination 'C:\Demos\Flutter-Campus-Complaints' `
	-Reset `
	-Open

The same actions are available from Tasks: Run Task:

  • GHCP Canned Demo: Start 20 Minutes
  • GHCP Canned Demo: Start 40 Minutes
  • GHCP Demo: Create Fresh Workspace
  • GHCP Demo: Reset Workspace

Repository Layout

Path Purpose
scripts/start-canned-demo.ps1 Runs preflight, resets the workspace, creates the cue card, and opens the canned demo
scripts/new-ghcp-demo.ps1 Generates, validates, commits, resets, and optionally opens a disposable demo workspace
demo/starter/ Minimal Flutter app and passing widget test used as the starting point
demo/DEMO_GUIDE.md Facilitator runbook for short and extended presentations
.github/prompts/ Staged Copilot slash prompts copied into each generated workspace
.github/copilot-instructions.md Flutter architecture, state, UI, and validation conventions
brd.md Source business requirements used during the demonstration
docs/ Supporting architecture, database, and security context
lib/ and test/ Completed reference implementation in this repository

Completed Showcase App

The repository root also contains the completed Campus Complaints application. It can be used as a fallback presentation, expected-result reference, or visual preview.

# Restore packages only.
.\scripts\demo.ps1 setup

# Restore, analyze, and run all tests.
.\scripts\demo.ps1 check

# Validate and create build/web.
.\scripts\demo.ps1 build

# Serve build/web at http://127.0.0.1:8080.
.\scripts\demo.ps1 run

Choose another port if necessary:

.\scripts\demo.ps1 run -Port 8090

The equivalent showcase tasks are available from Tasks: Run Task as Demo: Setup, Demo: Check, Demo: Build Web, and Demo: Run Web.

Presenter Safety

  • Generate the disposable workspace before the session to warm Flutter package caches and confirm Copilot authentication.
  • Run the reset command immediately before presenting.
  • Keep the completed root application available as a fallback.
  • Use in-memory repositories during the demo; Firebase credentials are not required.
  • Show git diff after each implementation stage to make Copilot's changes easy to explain and review.

About

Canned GitHub Copilot demo kit for building and testing a Flutter app from business requirements

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages