Skip to content

Commit 5dc99a6

Browse files
Copilotbrunoborges
andauthored
Surface CLI workshop on GitHub Pages web interface
Co-authored-by: brunoborges <129743+brunoborges@users.noreply.github.com> Agent-Logs-Url: https://github.com/copilot-dev-days/appmod-workshop-java/sessions/b63828dd-6d37-442b-bdd4-95a71a971577
1 parent a754a5a commit 5dc99a6

File tree

2 files changed

+84
-8
lines changed

2 files changed

+84
-8
lines changed

docs/index.html

Lines changed: 59 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@
2828
<h1>App Modernization with GitHub Copilot</h1>
2929
<p class="hero-subtitle">Modernize a legacy Java application using GitHub Copilot. Assess, upgrade frameworks, add health endpoints, and containerize — all with AI-powered assistance.</p>
3030
<div class="hero-cta">
31-
<a href="step.html?step=00-overview" class="btn btn-primary">🚀 Start Workshop</a>
31+
<a href="step.html?step=00-overview" class="btn btn-primary">🚀 Start IDE Workshop</a>
32+
<a href="step.html?variant=cli&step=00-overview" class="btn btn-primary">🖥️ Start CLI Workshop</a>
3233
<a href="https://github.com/copilot-dev-days/appmod-workshop-java" class="btn btn-secondary" target="_blank">⭐ GitHub Repo</a>
3334
</div>
3435
<div class="stats">
@@ -78,7 +79,7 @@ <h3>Containerization</h3>
7879

7980
<section class="workshop">
8081
<div class="container">
81-
<h2 class="section-title">Workshop Parts</h2>
82+
<h2 class="section-title">IDE Workshop (VS Code / IntelliJ)</h2>
8283
<div class="parts-list">
8384
<a href="step.html?step=00-overview" class="part-card">
8485
<div class="part-number">📚</div>
@@ -139,6 +140,62 @@ <h3>Copilot Prompts Guide</h3>
139140
</div>
140141
</section>
141142

143+
<section class="workshop">
144+
<div class="container">
145+
<h2 class="section-title">CLI Workshop (Terminal / No IDE)</h2>
146+
<div class="parts-list">
147+
<a href="step.html?variant=cli&step=00-overview" class="part-card">
148+
<div class="part-number">📚</div>
149+
<div class="part-content">
150+
<h3>Workshop Overview</h3>
151+
<p>What you'll build, learn, and time estimates</p>
152+
</div>
153+
<span class="part-time">5 min</span>
154+
</a>
155+
<a href="step.html?variant=cli&step=01-prerequisites" class="part-card">
156+
<div class="part-number">01</div>
157+
<div class="part-content">
158+
<h3>Prerequisites & Setup</h3>
159+
<p>Install Copilot CLI, Node.js 22+, and required tools</p>
160+
</div>
161+
<span class="part-time">5 min</span>
162+
</a>
163+
<a href="step.html?variant=cli&step=02-assess" class="part-card">
164+
<div class="part-number">02</div>
165+
<div class="part-content">
166+
<h3>Start Copilot CLI</h3>
167+
<p>Launch Copilot CLI and add the MCP modernization server</p>
168+
</div>
169+
<span class="part-time">5 min</span>
170+
</a>
171+
<a href="step.html?variant=cli&step=03-upgrade" class="part-card">
172+
<div class="part-number">03</div>
173+
<div class="part-content">
174+
<h3>Upgrade Runtime & Frameworks</h3>
175+
<p>Upgrade Java 8→21 and Spring Boot 2.x→3.x via natural language</p>
176+
</div>
177+
<span class="part-time">10 min</span>
178+
</a>
179+
<a href="step.html?variant=cli&step=04-health-endpoints" class="part-card">
180+
<div class="part-number">04</div>
181+
<div class="part-content">
182+
<h3>Health Endpoints</h3>
183+
<p>Add health endpoints using a natural language prompt</p>
184+
</div>
185+
<span class="part-time">10 min</span>
186+
</a>
187+
<a href="step.html?variant=cli&step=05-containerize" class="part-card">
188+
<div class="part-number">05</div>
189+
<div class="part-content">
190+
<h3>Containerize Applications</h3>
191+
<p>Generate Dockerfiles via natural language prompt</p>
192+
</div>
193+
<span class="part-time">5 min</span>
194+
</a>
195+
</div>
196+
</div>
197+
</section>
198+
142199
<section class="prereqs">
143200
<div class="container">
144201
<h2 class="section-title">Prerequisites</h2>

docs/step.html

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
<div class="layout">
3939
<aside class="sidebar">
4040
<div class="sidebar-section">
41-
<div class="sidebar-title">Workshop Steps</div>
41+
<div class="sidebar-title" id="sidebarTitle">Workshop Steps</div>
4242
<nav id="stepNav"></nav>
4343
</div>
4444
</aside>
@@ -54,7 +54,7 @@
5454
</div>
5555

5656
<script>
57-
const steps = [
57+
const ideSteps = [
5858
{ id: '00-overview', file: 'workshop/00-overview.md', title: 'Workshop Overview', number: '📚' },
5959
{ id: '01-prerequisites', file: 'workshop/01-prerequisites.md', title: 'Prerequisites & Setup', number: '01' },
6060
{ id: '02-assess', file: 'workshop/02-assess.md', title: 'Assess Your Application', number: '02' },
@@ -64,6 +64,24 @@
6464
{ id: 'prompts', file: 'PROMPTS.md', title: 'Copilot Prompts Guide', number: '📖' },
6565
];
6666

67+
const cliSteps = [
68+
{ id: '00-overview', file: 'workshop-cli/00-overview.md', title: 'Workshop Overview', number: '📚' },
69+
{ id: '01-prerequisites', file: 'workshop-cli/01-prerequisites.md', title: 'Prerequisites & Setup', number: '01' },
70+
{ id: '02-assess', file: 'workshop-cli/02-assess.md', title: 'Start Copilot CLI', number: '02' },
71+
{ id: '03-upgrade', file: 'workshop-cli/03-upgrade.md', title: 'Upgrade Runtime & Frameworks', number: '03' },
72+
{ id: '04-health-endpoints', file: 'workshop-cli/04-health-endpoints.md', title: 'Health Endpoints', number: '04' },
73+
{ id: '05-containerize', file: 'workshop-cli/05-containerize.md', title: 'Containerize Applications', number: '05' },
74+
];
75+
76+
function getVariant() {
77+
const params = new URLSearchParams(window.location.search);
78+
return params.get('variant') === 'cli' ? 'cli' : 'ide';
79+
}
80+
81+
const variant = getVariant();
82+
const steps = variant === 'cli' ? cliSteps : ideSteps;
83+
const variantParam = variant === 'cli' ? 'variant=cli&' : '';
84+
6785
const isLocal = window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1' || window.location.protocol === 'file:';
6886
const GITHUB_RAW_BASE = isLocal ? '../' : 'https://raw.githubusercontent.com/copilot-dev-days/appmod-workshop-java/main/';
6987

@@ -76,8 +94,9 @@
7694

7795
function buildSidebar() {
7896
const nav = document.getElementById('stepNav');
97+
document.getElementById('sidebarTitle').textContent = variant === 'cli' ? 'CLI Workshop Steps' : 'Workshop Steps';
7998
nav.innerHTML = steps.map((step, i) => `
80-
<a href="?step=${step.id}" class="step-link ${i === currentIndex ? 'active' : ''}" data-index="${i}">
99+
<a href="?${variantParam}step=${step.id}" class="step-link ${i === currentIndex ? 'active' : ''}" data-index="${i}">
81100
<span class="step-number">${step.number}</span>
82101
<span>${step.title}</span>
83102
</a>
@@ -94,15 +113,15 @@
94113
const prev = currentIndex > 0 ? steps[currentIndex - 1] : null;
95114
const next = currentIndex < steps.length - 1 ? steps[currentIndex + 1] : null;
96115
footer.innerHTML = `
97-
<a href="${prev ? '?step=' + prev.id : '#'}" class="nav-footer-btn ${!prev ? 'disabled' : ''}">← ${prev ? prev.title : 'Previous'}</a>
98-
<a href="${next ? '?step=' + next.id : '#'}" class="nav-footer-btn ${!next ? 'disabled' : ''}">${next ? next.title : 'Next'} →</a>
116+
<a href="${prev ? '?' + variantParam + 'step=' + prev.id : '#'}" class="nav-footer-btn ${!prev ? 'disabled' : ''}">← ${prev ? prev.title : 'Previous'}</a>
117+
<a href="${next ? '?' + variantParam + 'step=' + next.id : '#'}" class="nav-footer-btn ${!next ? 'disabled' : ''}">${next ? next.title : 'Next'} →</a>
99118
`;
100119
}
101120

102121
function navigate(direction) {
103122
const newIndex = currentIndex + direction;
104123
if (newIndex >= 0 && newIndex < steps.length) {
105-
window.location.href = `?step=${steps[newIndex].id}`;
124+
window.location.href = `?${variantParam}step=${steps[newIndex].id}`;
106125
}
107126
}
108127

0 commit comments

Comments
 (0)