|
1 | 1 | # AI Native Software Engineering Workshop |
2 | 2 |
|
3 | | -An interactive slideshow for the **AI Native Developer Workshop**, built with React and TypeScript. The presentation covers AI fundamentals, LLM concepts, and the **4D AI Fluency Framework** (Delegation, Description, Discernment, Diligence). |
4 | | - |
5 | | -## Purpose |
6 | | - |
7 | | -This project serves as a presentation tool for teaching developers about: |
8 | | - |
9 | | -- AI adoption and the "quantum state" of modern development |
10 | | -- How Large Language Models (LLMs) work |
11 | | -- Transformer architecture and GPU acceleration |
12 | | -- Context windows and model capabilities |
13 | | -- The 4D AI Fluency Framework for effective AI collaboration |
| 3 | +An interactive slideshow for the **AI Native Developer Workshop**, built with React and TypeScript. Covers a full curriculum from AI fundamentals to hands-on tool demos. |
| 4 | + |
| 5 | +## Slides |
| 6 | + |
| 7 | +| Section | Topics | |
| 8 | +| ----------------- | -------------------------------------------------- | |
| 9 | +| Introduction | Workshop overview, the AI-native developer mindset | |
| 10 | +| Evolution | How software development is changing with AI | |
| 11 | +| LLM Basics | Transformers, context windows, GPU acceleration | |
| 12 | +| 4D Fluency | Framework for effective AI collaboration | |
| 13 | +| Models | Model landscape and selection guidance | |
| 14 | +| Ollama | Running models locally | |
| 15 | +| Prompting | Prompt engineering techniques | |
| 16 | +| Copilot | GitHub Copilot features and usage | |
| 17 | +| Privacy | Data handling and enterprise privacy controls | |
| 18 | +| Security | OWASP Top 10, secure AI-assisted coding | |
| 19 | +| Instructions | Custom instructions and system prompts | |
| 20 | +| Context | Context window management strategies | |
| 21 | +| Spec Kit | Spec-driven development with AI | |
| 22 | +| Reuse & Skills | Prompt libraries, reuse patterns | |
| 23 | +| MCP | Model Context Protocol | |
| 24 | +| Team Sharing | Copilot for organizational knowledge sharing | |
| 25 | +| Copilot CLI | Terminal-based AI assistance | |
| 26 | +| Multi-Agent | Agentic workflows and orchestration | |
| 27 | +| Copilot SDK | Building custom Copilot extensions | |
| 28 | +| What the Pros Use | Tools and practices from experienced AI developers | |
| 29 | +| Closing | Summary and next steps | |
14 | 30 |
|
15 | 31 | ## Tech Stack |
16 | 32 |
|
17 | | -- **React 18** - UI framework |
18 | | -- **TypeScript** - Type-safe JavaScript |
19 | | -- **Vite** - Fast build tool and dev server |
20 | | -- **Tailwind CSS** - Utility-first styling |
21 | | -- **Lucide React** - Icon library |
| 33 | +- **React 18** + **TypeScript** — UI and type safety |
| 34 | +- **Vite** — Dev server and build tool |
| 35 | +- **Tailwind CSS** — Utility-first styling |
| 36 | +- **Lucide React** — Icons |
22 | 37 |
|
23 | 38 | ## Getting Started |
24 | 39 |
|
25 | 40 | ### Prerequisites |
26 | 41 |
|
27 | | -- Node.js 18+ installed |
28 | | -- npm or yarn package manager |
29 | | - |
30 | | -### Installation |
31 | | - |
32 | | -1. Clone the repository: |
33 | | - |
34 | | - ```bash |
35 | | - git clone <repository-url> |
36 | | - cd ai_workshop |
37 | | - ``` |
38 | | - |
39 | | -2. Install dependencies: |
40 | | - |
41 | | - ```bash |
42 | | - npm install |
43 | | - ``` |
44 | | - |
45 | | -3. Start the development server: |
| 42 | +- Node.js 18+ |
46 | 43 |
|
47 | | - ```bash |
48 | | - npm run dev |
49 | | - ``` |
50 | | - |
51 | | -4. Open your browser to `http://localhost:5173` |
52 | | - |
53 | | -## Usage |
54 | | - |
55 | | -### Navigation |
56 | | - |
57 | | -- **Arrow keys**: Use ← and → to navigate between slides |
58 | | -- **Buttons**: Click Previous/Next buttons at the bottom |
59 | | -- **Dots**: Click any dot indicator to jump to a specific slide |
60 | | - |
61 | | -### Building for Production |
| 44 | +### Installation & Development |
62 | 45 |
|
63 | 46 | ```bash |
64 | | -npm run build |
| 47 | +git clone https://github.com/JanDeDobbeleer/workshop_ai_native.git |
| 48 | +cd workshop_ai_native |
| 49 | +npm install |
| 50 | +npm run dev |
65 | 51 | ``` |
66 | 52 |
|
67 | | -The built files will be in the `dist` folder. |
| 53 | +Open `http://localhost:5173` in your browser. The app is password-protected; the default local dev password is `workshop`. |
68 | 54 |
|
69 | | -### Preview Production Build |
| 55 | +### Build |
70 | 56 |
|
71 | 57 | ```bash |
72 | | -npm run preview |
| 58 | +npm run build # outputs to dist/ |
| 59 | +npm run preview # preview the production build |
73 | 60 | ``` |
74 | 61 |
|
75 | | -## Project Structure |
76 | | - |
77 | | -```text |
78 | | -ai_workshop/ |
79 | | -├── src/ |
80 | | -│ ├── slides.tsx # Main slideshow component with all slides |
81 | | -│ ├── App.tsx # Root application component |
82 | | -│ ├── main.tsx # Entry point |
83 | | -│ ├── index.css # Tailwind CSS imports |
84 | | -│ └── img/ # Image assets |
85 | | -├── index.html # HTML template |
86 | | -├── package.json # Dependencies and scripts |
87 | | -├── vite.config.ts # Vite configuration |
88 | | -├── tailwind.config.js # Tailwind configuration |
89 | | -├── tsconfig.json # TypeScript configuration |
90 | | -└── README.md # This file |
91 | | -``` |
| 62 | +## Authentication |
92 | 63 |
|
93 | | -## Adding New Slides |
| 64 | +The slideshow uses a lightweight password gate (SHA-256 hashed, client-side only — not a security mechanism, just casual access control). |
94 | 65 |
|
95 | | -Slides are defined in `src/slides.tsx` as an array of objects: |
| 66 | +Set the password by providing a SHA-256 hash via environment variable: |
96 | 67 |
|
97 | | -```tsx |
98 | | -{ |
99 | | - title: "Slide Title", |
100 | | - subtitle: "Subtitle text", |
101 | | - content: ( |
102 | | - <div> |
103 | | - {/* Your JSX content here */} |
104 | | - </div> |
105 | | - ) |
106 | | -} |
| 68 | +```bash |
| 69 | +VITE_WORKSHOP_PASSWORD_HASH=<your-hash> npm run build |
107 | 70 | ``` |
108 | 71 |
|
109 | | -Add new slides to the `slides` array - navigation automatically adjusts. |
| 72 | +To generate a hash in the browser console: |
110 | 73 |
|
111 | | -## License |
112 | | - |
113 | | -Private - All rights reserved. |
| 74 | +```js |
| 75 | +crypto.subtle.digest('SHA-256', new TextEncoder().encode('your-password')) |
| 76 | + .then(buf => Array.from(new Uint8Array(buf)).map(b => b.toString(16).padStart(2, '0')).join('')) |
| 77 | + .then(console.log) |
| 78 | +``` |
114 | 79 |
|
115 | | -## Author |
| 80 | +## Navigation |
116 | 81 |
|
117 | | -**Jan De Dobbeleer** |
118 | | -Engineering Leader & Open Source Innovator |
119 | | -📧 jan@itdepends.be |
120 | | -🐦 @jandedobbeleer |
| 82 | +| Action | Control | |
| 83 | +| --------------- | -------------------------------- | |
| 84 | +| Next slide | → arrow key or Next button | |
| 85 | +| Previous slide | ← arrow key or Previous button | |
| 86 | +| Jump to section | Hamburger menu or dot indicators | |
| 87 | +| Toggle nav side | Panel toggle button | |
0 commit comments