Skip to content

Commit c089bfd

Browse files
Add celebration page with confetti 🎉
- Add 05-complete.md with workshop completion content - Add confetti.js library to step.html - Auto-trigger confetti celebration on completion page - Add 'More Confetti!' button for extra fun
1 parent 8afb5f2 commit c089bfd

3 files changed

Lines changed: 135 additions & 1 deletion

File tree

.lab/04-multi-agent.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,9 +211,11 @@ Congratulations! You've completed the VS Code GitHub Copilot Agent Lab.
211211

212212
---
213213

214+
👉 **[🎉 Celebrate Your Completion! →](05-complete.md)**
215+
214216
---
215217

216-
[🎮 Live Demo](https://dotnet-presentations.github.io/vscode-github-copilot-agent-lab/)[📚 Lab Guide](https://dotnet-presentations.github.io/vscode-github-copilot-agent-lab/docs/)[← Part 3](03-quiz-master.md)[🏠 Overview](00-overview.md)
218+
[🎮 Play Game](https://dotnet-presentations.github.io/vscode-github-copilot-agent-lab/)[📚 Lab Guide](https://dotnet-presentations.github.io/vscode-github-copilot-agent-lab/docs/)[← Part 3](03-quiz-master.md)
217219

218220
Happy Coding! 👋
219221

.lab/05-complete.md

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
# 🎉 Workshop Complete!
2+
3+
[🎮 Play Game](https://dotnet-presentations.github.io/vscode-github-copilot-agent-lab/)[📚 Lab Guide](https://dotnet-presentations.github.io/vscode-github-copilot-agent-lab/docs/)[← Part 4](04-multi-agent.md)
4+
5+
---
6+
7+
## Congratulations! 🎊
8+
9+
You've completed the **VS Code GitHub Copilot Agent Lab**!
10+
11+
<div id="confetti-btn-container"></div>
12+
13+
---
14+
15+
## 🏆 What You Built
16+
17+
- ✅ A fully redesigned Social Bingo app
18+
- ✅ Custom quiz themes with Quiz Master agent
19+
- ✅ Scavenger Hunt mode (TDD-built)
20+
- ✅ Card Deck Shuffle mode (design-driven)
21+
- ✅ Comprehensive UX review
22+
23+
---
24+
25+
## 🧠 What You Learned
26+
27+
| Skill | Description |
28+
|-------|-------------|
29+
| **Context Engineering** | Teaching AI about your codebase with instructions |
30+
| **Agentic Primitives** | Background agents, cloud agents, and custom workflows |
31+
| **Design-First Development** | UI iteration with AI assistance |
32+
| **Test-Driven Development** | Reliable code with TDD agents |
33+
34+
---
35+
36+
## 🚀 Keep Going!
37+
38+
### Resources
39+
40+
- 📺 [VS Code on YouTube](https://www.youtube.com/code)
41+
- 📖 [VS Code Copilot Docs](https://code.visualstudio.com/docs/copilot/overview)
42+
- 🌟 [Awesome Copilot](https://github.com/github/awesome-copilot)
43+
44+
### Next Steps
45+
46+
1. **Share your creation** — Show off your themed bingo app!
47+
2. **Try more themes** — Use Pixel Jam for more design variations
48+
3. **Add features** — Leaderboards, sound effects, multiplayer?
49+
4. **Teach others** — Run this workshop for your team
50+
51+
---
52+
53+
## 💜 Thank You!
54+
55+
Thanks for joining us on this journey into AI-assisted development.
56+
57+
We can't wait to see what you build next!
58+
59+
---
60+
61+
*Happy Coding! 👋*
62+
63+
*— The VS Code and .NET Teams*

docs/step.html

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -502,6 +502,7 @@
502502
</main>
503503
</div>
504504

505+
<script src="https://cdn.jsdelivr.net/npm/canvas-confetti@1.9.2/dist/confetti.browser.min.js"></script>
505506
<script>
506507
// Define all steps in order
507508
const steps = [
@@ -511,8 +512,48 @@
511512
{ id: '02-design', file: '02-design.md', title: 'Design-First Frontend', number: '02' },
512513
{ id: '03-quiz-master', file: '03-quiz-master.md', title: 'Custom Quiz Master', number: '03' },
513514
{ id: '04-multi-agent', file: '04-multi-agent.md', title: 'Multi-Agent Development', number: '04' },
515+
{ id: '05-complete', file: '05-complete.md', title: '🎉 Complete!', number: '🎉' },
514516
];
515517

518+
// Confetti celebration function
519+
function celebrate() {
520+
const duration = 3000;
521+
const end = Date.now() + duration;
522+
523+
const colors = ['#00f5ff', '#ff00ff', '#b366ff', '#00ff88', '#ffff00'];
524+
525+
(function frame() {
526+
confetti({
527+
particleCount: 5,
528+
angle: 60,
529+
spread: 55,
530+
origin: { x: 0 },
531+
colors: colors
532+
});
533+
confetti({
534+
particleCount: 5,
535+
angle: 120,
536+
spread: 55,
537+
origin: { x: 1 },
538+
colors: colors
539+
});
540+
541+
if (Date.now() < end) {
542+
requestAnimationFrame(frame);
543+
}
544+
}());
545+
}
546+
547+
// Big confetti burst
548+
function bigCelebrate() {
549+
confetti({
550+
particleCount: 150,
551+
spread: 100,
552+
origin: { y: 0.6 },
553+
colors: ['#00f5ff', '#ff00ff', '#b366ff', '#00ff88', '#ffff00']
554+
});
555+
}
556+
516557
// Base URL for fetching markdown from GitHub
517558
const GITHUB_RAW_BASE = 'https://raw.githubusercontent.com/dotnet-presentations/vscode-github-copilot-agent-lab/main/.lab/';
518559

@@ -627,6 +668,34 @@
627668
});
628669

629670
document.getElementById('markdown-content').innerHTML = marked.parse(md);
671+
672+
// If this is the completion page, add confetti!
673+
if (step.id === '05-complete') {
674+
// Trigger celebration on load
675+
setTimeout(celebrate, 500);
676+
677+
// Add the confetti button
678+
const btnContainer = document.getElementById('confetti-btn-container');
679+
if (btnContainer) {
680+
btnContainer.innerHTML = `
681+
<button onclick="bigCelebrate()" style="
682+
background: linear-gradient(135deg, var(--neon-cyan), var(--neon-magenta));
683+
color: var(--bg-dark);
684+
border: none;
685+
padding: 1rem 2rem;
686+
font-size: 1.25rem;
687+
font-weight: 700;
688+
border-radius: 12px;
689+
cursor: pointer;
690+
margin: 1rem 0;
691+
transition: transform 0.2s, box-shadow 0.2s;
692+
" onmouseover="this.style.transform='scale(1.05)'; this.style.boxShadow='0 10px 40px rgba(0,245,255,0.4)';"
693+
onmouseout="this.style.transform='scale(1)'; this.style.boxShadow='none';">
694+
🎊 More Confetti! 🎊
695+
</button>
696+
`;
697+
}
698+
}
630699
} catch (error) {
631700
document.getElementById('markdown-content').innerHTML = `
632701
<h1>Error Loading Content</h1>

0 commit comments

Comments
 (0)