|
1 | | -# Spec-Driven Development com GitHub Copilot |
| 1 | +# 🎤 Spec-Driven Development com GitHub Copilot |
2 | 2 |
|
3 | 3 | <p align="center"> |
4 | | - <strong>Apresentacao web interativa sobre SDD (Spec-Driven Development) com foco em contexto, previsibilidade e fluxo com AI Coding Agents.</strong> |
| 4 | + <img src="./resources/images/palestra-banner.png" alt="Banner da palestra Spec-Driven Development com GitHub Copilot" /> |
5 | 5 | </p> |
6 | 6 |
|
7 | 7 | <p align="center"> |
8 | | - <a href="https://glaucia86.github.io/palestra-sdd/"><strong>Ver apresentacao online</strong></a> |
9 | | - · |
10 | | - <a href="#-rodando-localmente">Rodar localmente</a> |
11 | | - · |
12 | | - <a href="#-estrutura-do-projeto">Estrutura</a> |
| 8 | + <strong>Apresentação web interativa sobre SDD (Spec-Driven Development) com foco em contexto, previsibilidade e fluxo com AI Coding Agents.</strong> |
13 | 9 | </p> |
14 | 10 |
|
15 | 11 | <p align="center"> |
16 | | - <img src="./resources/images/palestra-banner.png" alt="Banner da palestra Spec-Driven Development com GitHub Copilot" /> |
| 12 | + <a href="https://glaucia86.github.io/palestra-sdd/"><strong>🌐 Ver apresentação online</strong></a> |
| 13 | + · |
| 14 | + <a href="#-quick-start">🚀 Quick Start</a> |
| 15 | + · |
| 16 | + <a href="#-estrutura-do-projeto">📁 Estrutura</a> |
| 17 | + · |
| 18 | + <a href="#-autora">👩💻 Autora</a> |
17 | 19 | </p> |
18 | 20 |
|
19 | 21 | <p align="center"> |
|
22 | 24 | <img src="https://img.shields.io/badge/JavaScript-ESM-f59e0b?style=for-the-badge&logo=javascript&logoColor=111827" alt="JavaScript ESM" /> |
23 | 25 | <img src="https://img.shields.io/badge/GitHub%20Pages-Deploy-0b1220?style=for-the-badge&logo=github" alt="GitHub Pages" /> |
24 | 26 | <img src="https://img.shields.io/badge/License-MIT-22c55e?style=for-the-badge" alt="MIT" /> |
| 27 | + <img src="https://img.shields.io/github/last-commit/glaucia86/palestra-sdd?style=for-the-badge&color=0ea5e9" alt="Last Commit" /> |
25 | 28 | </p> |
26 | 29 |
|
27 | 30 | --- |
28 | 31 |
|
29 | | -## Visao Geral |
| 32 | +## 📖 Visão Geral |
30 | 33 |
|
31 | | -Este repositorio contem a apresentacao da **Glaucia Lemos** sobre **Spec-Driven Development (SDD) com GitHub Copilot**. |
| 34 | +Este repositório contém a apresentação da **Glaucia Lemos** sobre **Spec-Driven Development (SDD) com GitHub Copilot**. |
32 | 35 |
|
33 | | -A experiencia foi desenvolvida como slides web com Reveal.js, sem build step, com: |
| 36 | +A experiência foi desenvolvida como slides web com Reveal.js, sem build step, com: |
34 | 37 |
|
35 | | -- carregamento dinamico de secoes (`slides/manifest.json` + `slides/parts/*.html`); |
36 | | -- design system proprio em `css/custom.css`; |
37 | | -- app JS modular em `js/app/*`; |
38 | | -- recursos interativos como quiz, Mermaid, starfield, particles e backgrounds especiais. |
| 38 | +- 🔄 **Carregamento dinâmico** de seções (`slides/manifest.json` + `slides/parts/*.html`); |
| 39 | +- 🎨 **Design system** próprio em `css/custom.css`; |
| 40 | +- 🧩 **App JS modular** em `js/app/*`; |
| 41 | +- ✨ **Recursos interativos** como quiz, Mermaid, starfield, particles e backgrounds especiais. |
39 | 42 |
|
40 | 43 | --- |
41 | 44 |
|
42 | | -## Sumario |
| 45 | +## ✨ Features |
43 | 46 |
|
44 | | -- [Objetivos da palestra](#-objetivos-da-palestra) |
45 | | -- [Stack tecnica](#-stack-tecnica) |
46 | | -- [Arquitetura da aplicacao](#-arquitetura-da-aplicacao) |
47 | | -- [Rodando localmente](#-rodando-localmente) |
48 | | -- [Estrutura do projeto](#-estrutura-do-projeto) |
49 | | -- [Deploy](#-deploy) |
50 | | -- [Navegacao durante a apresentacao](#-navegacao-durante-a-apresentacao) |
51 | | -- [Autora](#-autora) |
52 | | -- [Licenca](#-licenca) |
| 47 | +<table> |
| 48 | +<tr> |
| 49 | +<td width="50%"> |
53 | 50 |
|
54 | | ---- |
55 | | - |
56 | | -## Objetivos da palestra |
| 51 | +### 📊 Slides Interativos |
| 52 | +- **Reveal.js 5.1** — Framework moderno de apresentações |
| 53 | +- **Navegação Intuitiva** — Suporte a slides verticais e horizontais |
| 54 | +- **Speaker Notes** — Notas para o palestrante |
57 | 55 |
|
58 | | -A apresentacao cobre de forma pratica: |
| 56 | +</td> |
| 57 | +<td width="50%"> |
59 | 58 |
|
60 | | -- fundamentos de **Spec-Driven Development**; |
61 | | -- uso de **spec-kit** no fluxo de desenvolvimento; |
62 | | -- GitHub Copilot Agent Mode e qualidade de contexto; |
63 | | -- arquitetura de contexto com `PRD.md`, `AGENTS.md`, Rules e Skills; |
64 | | -- estrategia de **Progressive Disclosure** para reduzir ruido; |
65 | | -- demo com elementos visuais e interativos; |
66 | | -- quiz final com consolidacao dos conceitos. |
| 59 | +### 🎨 Recursos Visuais |
| 60 | +- **Diagramas Mermaid** — Diagramas técnicos interativos |
| 61 | +- **Ícones Lucide** — Biblioteca de ícones moderna |
| 62 | +- **Animações** — Starfield, particles e backgrounds especiais |
67 | 63 |
|
68 | | ---- |
| 64 | +</td> |
| 65 | +</tr> |
| 66 | +<tr> |
| 67 | +<td width="50%"> |
69 | 68 |
|
70 | | -## Stack tecnica |
| 69 | +### 🧪 Elementos Interativos |
| 70 | +- **Quiz Interativo** — Consolidação de conceitos |
| 71 | +- **Carregamento Dinâmico** — Slides carregados sob demanda |
| 72 | +- **Design System** — Estilos customizados e consistentes |
71 | 73 |
|
72 | | -- **Slides:** Reveal.js 5.1 (CDN) |
73 | | -- **Diagramas:** Mermaid 11 (CDN) |
74 | | -- **Icones:** Lucide (CDN) |
75 | | -- **Estilos:** `css/custom.css` |
76 | | -- **Aplicacao JS:** ESM modular em `js/app/*` |
77 | | -- **Servidor local:** `live-server` via `server/dev-server.js` |
78 | | -- **Publicacao:** GitHub Pages via GitHub Actions |
| 74 | +</td> |
| 75 | +<td width="50%"> |
79 | 76 |
|
80 | | ---- |
| 77 | +### 🚀 Experiência do Desenvolvedor |
| 78 | +- **Zero Build** — Sem etapa de compilação |
| 79 | +- **ESM Modular** — Código JavaScript moderno |
| 80 | +- **Hot Reload** — Atualização automática durante desenvolvimento |
81 | 81 |
|
82 | | -## Arquitetura da aplicacao |
| 82 | +</td> |
| 83 | +</tr> |
| 84 | +</table> |
83 | 85 |
|
84 | | -A pagina principal (`index.html`) inicia uma estrutura simples: |
| 86 | +--- |
85 | 87 |
|
86 | | -1. carrega estilos e bibliotecas CDN (Reveal, Mermaid, Lucide); |
87 | | -2. inicializa o app em `js/app/init.js`; |
88 | | -3. carrega os arquivos definidos em `slides/manifest.json`; |
89 | | -4. injeta os blocos de `slides/parts/*.html` dentro de `.reveal .slides`; |
90 | | -5. executa bootstrap de recursos visuais, quiz e hooks de evento do Reveal. |
| 88 | +## 📚 Conteúdo da Palestra |
91 | 89 |
|
92 | | -Esse desenho permite evoluir conteudo e features sem acoplamento forte entre slides e runtime. |
| 90 | +| Tópico | Descrição | |
| 91 | +|--------|-----------| |
| 92 | +| 🎯 **Fundamentos SDD** | Conceitos básicos de Spec-Driven Development | |
| 93 | +| 🛠️ **spec-kit** | Como usar spec-kit no fluxo de desenvolvimento | |
| 94 | +| 🤖 **GitHub Copilot** | Agent Mode e otimização de contexto | |
| 95 | +| 📐 **Arquitetura** | PRD.md, AGENTS.md, Rules e Skills | |
| 96 | +| 🔄 **Progressive Disclosure** | Estratégias para reduzir ruído de contexto | |
| 97 | +| 🎬 **Demo Prática** | Elementos visuais e interativos ao vivo | |
| 98 | +| 🏆 **Quiz Final** | Consolidação dos conceitos apresentados | |
93 | 99 |
|
94 | 100 | --- |
95 | 101 |
|
96 | | -## Rodando localmente |
| 102 | +## 🚀 Quick Start |
97 | 103 |
|
98 | | -### Pre-requisitos |
| 104 | +### Pré-requisitos |
99 | 105 |
|
100 | | -- Node.js 18+ |
101 | | -- npm |
| 106 | +> [!IMPORTANT] |
| 107 | +> - **Node.js** — Versão 18.0.0 ou superior |
| 108 | +> - **npm** — Gerenciador de pacotes |
102 | 109 |
|
103 | | -### Instalacao |
| 110 | +### Instalação |
104 | 111 |
|
105 | 112 | ```bash |
106 | | -npm install |
107 | | -``` |
| 113 | +# Clone o repositório |
| 114 | +git clone https://github.com/glaucia86/palestra-sdd.git |
| 115 | +cd palestra-sdd |
108 | 116 |
|
109 | | -### Execucao |
| 117 | +# Instale as dependências |
| 118 | +npm install |
110 | 119 |
|
111 | | -```bash |
| 120 | +# Inicie o servidor de desenvolvimento |
112 | 121 | npm run start |
113 | 122 | ``` |
114 | 123 |
|
115 | | -A aplicacao sobe na porta `3000` e abre `index.html` automaticamente. |
| 124 | +### Acesso |
116 | 125 |
|
117 | | -- URL local: `http://127.0.0.1:3000/index.html` |
118 | | -- sem abrir navegador automaticamente: |
| 126 | +A aplicação será aberta automaticamente em `http://127.0.0.1:3000/index.html` |
119 | 127 |
|
120 | | -```bash |
121 | | -npm run start -- --no-browser |
122 | | -``` |
| 128 | +> [!TIP] |
| 129 | +> Use `npm run start -- --no-browser` para iniciar sem abrir o navegador automaticamente. |
| 130 | +
|
| 131 | +--- |
| 132 | + |
| 133 | +## 🏗️ Tech Stack |
| 134 | + |
| 135 | +<table> |
| 136 | +<tr> |
| 137 | +<td align="center" width="120"> |
| 138 | +<a href="https://revealjs.com/"> |
| 139 | +<img src="https://revealjs.com/images/logo/reveal-symbol.svg" width="48" height="48" alt="Reveal.js"/> |
| 140 | +</a> |
| 141 | +<br><strong>Reveal.js</strong> |
| 142 | +<br><sub>Slides Framework</sub> |
| 143 | +</td> |
| 144 | +<td align="center" width="120"> |
| 145 | +<a href="https://mermaid.js.org/"> |
| 146 | +<img src="https://mermaid.js.org/assets/logo.svg" width="48" height="48" alt="Mermaid"/> |
| 147 | +</a> |
| 148 | +<br><strong>Mermaid</strong> |
| 149 | +<br><sub>Diagramas</sub> |
| 150 | +</td> |
| 151 | +<td align="center" width="120"> |
| 152 | +<a href="https://lucide.dev/"> |
| 153 | +<img src="https://lucide.dev/logo.svg" width="48" height="48" alt="Lucide"/> |
| 154 | +</a> |
| 155 | +<br><strong>Lucide</strong> |
| 156 | +<br><sub>Ícones</sub> |
| 157 | +</td> |
| 158 | +<td align="center" width="120"> |
| 159 | +<a href="https://www.javascript.com/"> |
| 160 | +<img src="https://raw.githubusercontent.com/devicons/devicon/master/icons/javascript/javascript-original.svg" width="48" height="48" alt="JavaScript"/> |
| 161 | +</a> |
| 162 | +<br><strong>JavaScript</strong> |
| 163 | +<br><sub>ESM Modules</sub> |
| 164 | +</td> |
| 165 | +</tr> |
| 166 | +</table> |
123 | 167 |
|
124 | 168 | --- |
125 | 169 |
|
126 | | -## Estrutura do projeto |
| 170 | +## 🏛️ Arquitetura da Aplicação |
| 171 | + |
| 172 | +A página principal (`index.html`) inicia uma estrutura simples: |
| 173 | + |
| 174 | +1. carrega estilos e bibliotecas CDN (Reveal, Mermaid, Lucide); |
| 175 | +2. inicializa o app em `js/app/init.js`; |
| 176 | +3. carrega os arquivos definidos em `slides/manifest.json`; |
| 177 | +4. injeta os blocos de `slides/parts/*.html` dentro de `.reveal .slides`; |
| 178 | +5. executa bootstrap de recursos visuais, quiz e hooks de evento do Reveal. |
| 179 | + |
| 180 | +Esse desenho permite evoluir conteúdo e features sem acoplamento forte entre slides e runtime. |
| 181 | + |
| 182 | +--- |
| 183 | + |
| 184 | +## 📁 Estrutura do Projeto |
127 | 185 |
|
128 | 186 | ```text |
129 | 187 | palestra-sdd/ |
@@ -156,38 +214,86 @@ palestra-sdd/ |
156 | 214 |
|
157 | 215 | --- |
158 | 216 |
|
159 | | -## Deploy |
| 217 | +## 🎮 Navegação Durante a Apresentação |
| 218 | + |
| 219 | +| Tecla | Ação | |
| 220 | +|-------|------| |
| 221 | +| `→` / `Espaço` | Próximo slide | |
| 222 | +| `←` | Slide anterior | |
| 223 | +| `↑` / `↓` | Navegar sub-slides | |
| 224 | +| `Esc` | Visão geral | |
| 225 | +| `F` | Tela cheia | |
| 226 | +| `S` | Speaker notes | |
| 227 | + |
| 228 | +--- |
160 | 229 |
|
161 | | -O deploy para GitHub Pages e automatico via workflow: |
| 230 | +## 📸 Screenshots |
162 | 231 |
|
163 | | -- arquivo: `.github/workflows/deploy-pages.yml` |
164 | | -- gatilho: push para branch `main` |
165 | | -- URL publicada: `https://glaucia86.github.io/palestra-sdd/` |
| 232 | +> [!NOTE] |
| 233 | +> **Demo ao vivo:** [https://glaucia86.github.io/palestra-sdd/](https://glaucia86.github.io/palestra-sdd/) |
166 | 234 |
|
167 | 235 | --- |
168 | 236 |
|
169 | | -## Navegacao durante a apresentacao |
| 237 | +## 🚢 Deploy |
| 238 | + |
| 239 | +O deploy para GitHub Pages é automático via workflow: |
170 | 240 |
|
171 | | -- `->` / `Espaco`: proximo slide |
172 | | -- `<-`: slide anterior |
173 | | -- `setas vertical`: navegar sub-slides |
174 | | -- `Esc`: visao geral |
175 | | -- `F`: tela cheia |
176 | | -- `S`: speaker notes |
| 241 | +- **Arquivo:** `.github/workflows/deploy-pages.yml` |
| 242 | +- **Gatilho:** push para branch `main` |
| 243 | +- **URL publicada:** [https://glaucia86.github.io/palestra-sdd/](https://glaucia86.github.io/palestra-sdd/) |
177 | 244 |
|
178 | 245 | --- |
179 | 246 |
|
180 | | -## Autora |
| 247 | +## 👩💻 Autora |
| 248 | + |
| 249 | +<div align="center"> |
| 250 | + <a href="https://github.com/glaucia86"> |
| 251 | + <img src="https://github.com/glaucia86.png" width="100px;" alt="Glaucia Lemos" style="border-radius: 50%;"/> |
| 252 | + </a> |
| 253 | + <br /> |
| 254 | + <strong>Glaucia Lemos</strong> |
| 255 | + <br /> |
| 256 | + <sub>A.I Developer at Zup Innovation/Itaú</sub> |
| 257 | + <br /><br /> |
| 258 | + <a href="https://mvp.microsoft.com/pt-BR/MVP/profile/d3200941-395d-423b-a0ec-eb0577d3bb86"> |
| 259 | + <img src="https://img.shields.io/badge/Microsoft%20MVP-Web%20Technologies-blue?logo=microsoft&logoColor=white" alt="Microsoft MVP"/> |
| 260 | + </a> |
| 261 | + <br /><br /> |
| 262 | + <a href="https://x.com/glaucia_lemos86">🐦 Twitter</a> • |
| 263 | + <a href="https://www.linkedin.com/in/glaucialemos/">💼 LinkedIn</a> • |
| 264 | + <a href="https://github.com/glaucia86">🐙 GitHub</a> • |
| 265 | + <a href="https://www.youtube.com/@GlauciaLemos">📺 YouTube</a> |
| 266 | +</div> |
| 267 | + |
| 268 | +--- |
181 | 269 |
|
182 | | -**Glaucia Lemos** |
| 270 | +## ⭐ Apoie Este Projeto |
183 | 271 |
|
184 | | -- GitHub: https://github.com/glaucia86 |
185 | | -- X/Twitter: https://x.com/glaucia_lemos86 |
186 | | -- LinkedIn: https://www.linkedin.com/in/glaucialemos/ |
187 | | -- YouTube: https://www.youtube.com/@GlauciaLemos |
| 272 | +Se você achou esta apresentação útil: |
| 273 | + |
| 274 | +<table> |
| 275 | +<tr> |
| 276 | +<td>⭐ <strong>Star</strong> este repositório</td> |
| 277 | +<td>🐛 <strong>Reporte</strong> problemas encontrados</td> |
| 278 | +</tr> |
| 279 | +<tr> |
| 280 | +<td>💡 <strong>Sugira</strong> melhorias</td> |
| 281 | +<td>🔀 <strong>Contribua</strong> via pull requests</td> |
| 282 | +</tr> |
| 283 | +</table> |
188 | 284 |
|
189 | 285 | --- |
190 | 286 |
|
191 | | -## Licenca |
| 287 | +## 📄 Licença |
| 288 | + |
| 289 | +Este projeto está sob a licença **MIT**. Veja `LICENSE` para detalhes. |
192 | 290 |
|
193 | | -Este projeto esta sob a licenca **MIT**. Veja `LICENSE` para detalhes. |
| 291 | +--- |
| 292 | + |
| 293 | +<p align="center"> |
| 294 | + Feito com 💚 usando Reveal.js e GitHub Copilot |
| 295 | +</p> |
| 296 | + |
| 297 | +<p align="center"> |
| 298 | + <a href="#-spec-driven-development-com-github-copilot">⬆️ Voltar ao Topo</a> |
| 299 | +</p> |
0 commit comments