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
- 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
- Windows with PowerShell 5.1 or later
- Flutter 3.47 or a compatible stable release on
PATH - Git on
PATHfor 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 --versionClone 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.ps1From an existing clone, the launcher is one command:
.\scripts\start-canned-demo.ps1For the extended demo:
.\scripts\start-canned-demo.ps1 -Duration 40The canned launcher:
- Verifies Flutter, Git, VS Code, and the Flutter extension, and reports whether Copilot is standalone or integrated into VS Code.
- Safely resets and validates the disposable workspace.
- Creates a duration-specific
START_HERE.mdpresenter cue card. - Commits a clean Git baseline.
- Opens the workspace, cue card, and BRD in VS Code.
Follow the cue card and run the prompts in order. The underlying generator:
- Creates a new Flutter app under
%LOCALAPPDATA%\GHCP-Demos\Flutter-Campus-Complaints. - Installs the starter app, BRD, architecture documentation, Copilot instructions, and staged prompt files.
- Adds Riverpod and restores Flutter dependencies.
- Runs the starter widget test.
- Initializes Git and creates a clean baseline commit.
- Opens the generated workspace when
-Openis 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 | 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.
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 -OpenReset 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 `
-OpenThe same actions are available from Tasks: Run Task:
GHCP Canned Demo: Start 20 MinutesGHCP Canned Demo: Start 40 MinutesGHCP Demo: Create Fresh WorkspaceGHCP Demo: Reset Workspace
| 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 |
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 runChoose another port if necessary:
.\scripts\demo.ps1 run -Port 8090The equivalent showcase tasks are available from Tasks: Run Task as
Demo: Setup, Demo: Check, Demo: Build Web, and Demo: Run Web.
- 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 diffafter each implementation stage to make Copilot's changes easy to explain and review.