Skip to content

Commit 057dc7a

Browse files
Merge pull request #1 from benjaminhonorio/feature/github-pages-setup
Setup GitHub Pages and multi-scenario structure
2 parents 4e5a66a + 1cdee5f commit 057dc7a

23 files changed

Lines changed: 1051 additions & 643 deletions

.claude/CLAUDE.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# Project Instructions
2+
3+
AWS Architecture learning scenarios for Solutions Architect certification prep.
4+
5+
## Exam Reference
6+
7+
[AWS Certified Solutions Architect - Associate (SAA-C03) Exam Guide](https://docs.aws.amazon.com/aws-certification/latest/examguides/solutions-architect-associate-03.html)
8+
9+
## Creating Content
10+
11+
### Mermaid Diagrams
12+
13+
Follow [mermaid-style-guide.md](./mermaid-style-guide.md) for consistent styling:
14+
15+
- Use `<br>` for line breaks (never `\n`)
16+
- Always add `color:#000` for text visibility
17+
- Add `linkStyle default stroke:#000,stroke-width:2px`
18+
- Use the color palette (VPC: `#e3f2fd`, Public: `#c8e6c9`, Private: `#fff9c4`, RDS: `#bbdefb`)
19+
20+
### New Scenarios
21+
22+
Follow [SCENARIO-GUIDELINES.md](./SCENARIO-GUIDELINES.md) for creating new learning scenarios:
23+
24+
- Start with simple MVP, evolve naturally
25+
- Focus on the WHY behind each decision
26+
- Map to SAA exam domains
27+
- Use realistic business triggers
28+
29+
## Project Structure
30+
31+
```
32+
docs/ # Docsify site (GitHub Pages)
33+
├── scenarios/
34+
│ └── techbooks/ # TechBooks scenario
35+
└── index.html
36+
37+
.claude/ # AI context and guides
38+
├── CLAUDE.md
39+
├── mermaid-style-guide.md
40+
└── SCENARIO-GUIDELINES.md
41+
```
42+
43+
## Formatting
44+
45+
Run `npm run format` to format markdown files with Prettier.
Lines changed: 61 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,13 @@
22

33
## Purpose
44

5-
Create realistic, evolving business scenarios that teach AWS Solutions Architect concepts through architecture design exercises. Each scenario should reinforce exam concepts through practical decisions and understanding trade-offs.
5+
Create realistic, evolving business scenarios that teach AWS Solutions Architect concepts through
6+
architecture design exercises. Each scenario should reinforce exam concepts through practical
7+
decisions and understanding trade-offs.
68

7-
> **Note:** These scenarios focus on **understanding architecture concepts** - following along with diagrams, reasoning through decisions, and learning the WHY. Actually deploying to AWS is optional and may incur costs.
9+
> **Note:** These scenarios focus on **understanding architecture concepts** - following along with
10+
> diagrams, reasoning through decisions, and learning the WHY. Actually deploying to AWS is optional
11+
> and may incur costs.
812
913
---
1014

@@ -23,6 +27,7 @@ Day 1 MVP → Growth Pains → Reliability Needs → Scale Demands → Global Re
2327
### 2. Focus on the WHY
2428

2529
Every architectural decision should answer:
30+
2631
- **Why this service?** (vs alternatives)
2732
- **Why now?** (business trigger)
2833
- **What problem does it solve?**
@@ -31,6 +36,7 @@ Every architectural decision should answer:
3136
### 3. Map to SAA Exam Domains
3237

3338
Ensure scenarios cover these exam domains:
39+
3440
1. Design Secure Architectures
3541
2. Design Resilient Architectures
3642
3. Design High-Performing Architectures
@@ -44,16 +50,20 @@ Ensure scenarios cover these exam domains:
4450

4551
```
4652
aws-architecting/
47-
├── SCENARIO-GUIDELINES.md # This file
48-
├── mermaid-style-guide.md # Diagram styling reference
49-
└── {scenario-name}/
50-
├── docs/
51-
│ ├── 00-scenario-overview.md
52-
│ └── phases/
53-
│ ├── phase-1-*.md
54-
│ ├── phase-2-*.md
55-
│ └── ...
56-
└── diagrams/ # Optional: generated images
53+
├── .claude/
54+
│ ├── CLAUDE.md # AI instructions
55+
│ ├── SCENARIO-GUIDELINES.md # This file
56+
│ └── mermaid-style-guide.md # Diagram styling reference
57+
└── docs/ # Docsify site (GitHub Pages)
58+
├── index.html
59+
├── README.md # Landing page
60+
├── _sidebar.md
61+
└── scenarios/
62+
└── {scenario-name}/
63+
├── 00-overview.md
64+
└── phases/
65+
├── phase-1-*.md
66+
└── ...
5767
```
5868

5969
### Phase Document Template
@@ -64,38 +74,48 @@ Each phase document should include:
6474
# Phase N: [Title]
6575

6676
## The Story So Far
77+
6778
[Quick recap of current state]
6879

6980
## Business Trigger
81+
7082
[What happened that requires this change?]
83+
7184
- Customer complaints?
7285
- Outage?
7386
- Growth metrics?
7487
- New feature request?
7588
- Cost concerns?
7689

7790
## Architecture Decision
91+
7892
[What are we building and WHY]
7993

8094
## Key Concepts for SAA Exam
95+
8196
[Exam-relevant knowledge with depth]
8297

8398
### Concept 1
99+
84100
- What it is
85101
- Why it matters
86102
- Common exam scenarios
87103
- Key numbers to remember
88104

89105
## Architecture Diagram
106+
90107
[Mermaid diagram following style guide]
91108

92109
## (Optional) Hands-on Lab
110+
93111
[Console/CLI walkthrough - include cost warnings if applicable]
94112

95113
## What Could Go Wrong?
114+
96115
[Sets up the next phase's trigger]
97116

98117
## Exam Tips
118+
99119
[Quick-reference bullets]
100120
```
101121

@@ -105,40 +125,45 @@ Each phase document should include:
105125

106126
### Typical 6-Phase Journey
107127

108-
| Phase | Focus | Key Services | Exam Concepts |
109-
|-------|-------|--------------|---------------|
110-
| 1. MVP Launch | Get online fast | VPC, EC2, Security Groups | Networking basics, compute |
111-
| 2. Database Separation | Data durability | RDS, DB Subnet Groups | Managed services, backups |
112-
| 3. High Availability | Survive failures | Multi-AZ RDS, multiple AZs | HA vs FT, SLAs |
113-
| 4. Auto Scaling | Handle load | ALB, ASG, Launch Templates | Horizontal scaling, health checks |
114-
| 5. Going Global | Performance | CloudFront, Route 53, S3 | CDN, DNS, caching |
115-
| 6. Modernization | Optimize | Lambda, ElastiCache, SQS | Serverless, decoupling |
128+
| Phase | Focus | Key Services | Exam Concepts |
129+
| ---------------------- | ---------------- | -------------------------- | --------------------------------- |
130+
| 1. MVP Launch | Get online fast | VPC, EC2, Security Groups | Networking basics, compute |
131+
| 2. Database Separation | Data durability | RDS, DB Subnet Groups | Managed services, backups |
132+
| 3. High Availability | Survive failures | Multi-AZ RDS, multiple AZs | HA vs FT, SLAs |
133+
| 4. Auto Scaling | Handle load | ALB, ASG, Launch Templates | Horizontal scaling, health checks |
134+
| 5. Going Global | Performance | CloudFront, Route 53, S3 | CDN, DNS, caching |
135+
| 6. Modernization | Optimize | Lambda, ElastiCache, SQS | Serverless, decoupling |
116136

117137
### Business Triggers Library
118138

119139
Use these realistic triggers to drive evolution:
120140

121141
**Phase 1 → 2** (Database Separation)
142+
122143
- "Database corrupted, no backup!"
123144
- "EC2 instance crashed, lost everything"
124145
- "Need to update app but scared to touch the server"
125146

126147
**Phase 2 → 3** (High Availability)
148+
127149
- "AZ outage took us offline for 4 hours"
128150
- "Customers complaining about downtime"
129151
- "Investor asking about our SLA"
130152

131153
**Phase 3 → 4** (Auto Scaling)
154+
132155
- "Black Friday traffic crashed the site"
133156
- "Paying for idle capacity at night"
134157
- "Manual scaling takes too long"
135158

136159
**Phase 4 → 5** (Global)
160+
137161
- "International customers complaining about slow loads"
138162
- "Image-heavy pages taking 5+ seconds"
139163
- "Expanding to new markets"
140164

141165
**Phase 5 → 6** (Modernization)
166+
142167
- "Monthly AWS bill too high"
143168
- "Want real-time features without managing servers"
144169
- "Need async processing for large uploads"
@@ -148,27 +173,39 @@ Use these realistic triggers to drive evolution:
148173
## Scenario Ideas
149174

150175
### E-Commerce (TechBooks ✓)
176+
151177
Online bookstore selling technical books
178+
152179
- Good for: VPC, RDS, ALB, ASG, CloudFront
153180

154181
### SaaS Platform (Potential)
182+
155183
Multi-tenant B2B application
184+
156185
- Good for: Cognito, multi-account, tenant isolation
157186

158187
### Media Processing (Potential)
188+
159189
Video/image processing pipeline
190+
160191
- Good for: S3, Lambda, Step Functions, SQS, MediaConvert
161192

162193
### IoT Dashboard (Potential)
194+
163195
Device telemetry and monitoring
196+
164197
- Good for: IoT Core, Kinesis, DynamoDB, TimeStream
165198

166199
### Healthcare App (Potential)
200+
167201
HIPAA-compliant patient portal
202+
168203
- Good for: Security focus, encryption, compliance, VPC endpoints
169204

170205
### Startup to Enterprise (Potential)
206+
171207
Growing company's internal tools
208+
172209
- Good for: Organizations, Control Tower, multi-account
173210

174211
---
@@ -202,6 +239,7 @@ flowchart TB
202239
```
203240

204241
### Key Rules
242+
205243
1. Use `<br>` for line breaks (never `\n`)
206244
2. Always add `color:#000` for text visibility
207245
3. Add `linkStyle default stroke:#000,stroke-width:2px` for black arrows
@@ -212,18 +250,21 @@ flowchart TB
212250
## Writing Tips
213251

214252
### For Exam Relevance
253+
215254
- Include specific numbers (ports, limits, timeouts)
216255
- Compare similar services (ALB vs NLB, Multi-AZ vs Read Replicas)
217256
- Highlight "gotchas" and common misconceptions
218257
- Add "Exam Tip" callouts for key facts
219258

220259
### For Learning
260+
221261
- Explain concepts before using them
222262
- Use analogies for complex topics
223263
- Show the problem before the solution
224264
- Include "What Could Go Wrong" to build intuition
225265

226266
### For Engagement
267+
227268
- Give the scenario personality (founder's name, company culture)
228269
- Use realistic metrics and timelines
229270
- Include tough decisions with trade-offs
Lines changed: 31 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -11,21 +11,22 @@ Reference for consistent diagram styling across all TechBooks architecture docum
1111

1212
## Color Palette
1313

14-
| Purpose | Fill Color | With Text | Example |
15-
|---------|------------|-----------|---------|
16-
| **VPC / Container** | `#e3f2fd` | `fill:#e3f2fd,color:#000` | Light blue |
17-
| **Public Subnet** | `#c8e6c9` | `fill:#c8e6c9,color:#000` | Light green |
18-
| **Private Subnet** | `#fff9c4` | `fill:#fff9c4,color:#000` | Light yellow |
19-
| **Database / RDS** | `#bbdefb` | `fill:#bbdefb,color:#000` | Blue |
20-
| **Warning / Problem** | `#ffcdd2` | `fill:#ffcdd2,color:#000` | Light red |
21-
| **Success / Good** | `#c8e6c9` | `fill:#c8e6c9,color:#000` | Light green |
22-
| **Neutral / Future** | `#f5f5f5` | `fill:#f5f5f5,color:#000` | Light gray |
23-
| **Highlight** | `#fff3e0` | `fill:#fff3e0,color:#000` | Light orange |
24-
| **Info** | `#e8f5e9` | `fill:#e8f5e9,color:#000` | Very light green |
14+
| Purpose | Fill Color | With Text | Example |
15+
| --------------------- | ---------- | ------------------------- | ---------------- |
16+
| **VPC / Container** | `#e3f2fd` | `fill:#e3f2fd,color:#000` | Light blue |
17+
| **Public Subnet** | `#c8e6c9` | `fill:#c8e6c9,color:#000` | Light green |
18+
| **Private Subnet** | `#fff9c4` | `fill:#fff9c4,color:#000` | Light yellow |
19+
| **Database / RDS** | `#bbdefb` | `fill:#bbdefb,color:#000` | Blue |
20+
| **Warning / Problem** | `#ffcdd2` | `fill:#ffcdd2,color:#000` | Light red |
21+
| **Success / Good** | `#c8e6c9` | `fill:#c8e6c9,color:#000` | Light green |
22+
| **Neutral / Future** | `#f5f5f5` | `fill:#f5f5f5,color:#000` | Light gray |
23+
| **Highlight** | `#fff3e0` | `fill:#fff3e0,color:#000` | Light orange |
24+
| **Info** | `#e8f5e9` | `fill:#e8f5e9,color:#000` | Very light green |
2525

2626
## Style Syntax Examples
2727

2828
### Basic node with color
29+
2930
```mermaid
3031
flowchart LR
3132
A["Node Label"] --> B["Another Node"]
@@ -34,20 +35,23 @@ flowchart LR
3435
```
3536

3637
### Multi-line labels
38+
3739
```mermaid
3840
flowchart TB
3941
EC2["EC2 Instance<br>t3.micro<br>Public Subnet"]
4042
style EC2 fill:#fff9c4,color:#000
4143
```
4244

4345
### Dashed border (for future/placeholder items)
46+
4447
```mermaid
4548
flowchart LR
4649
Future["Reserved for<br>Future Use"]
4750
style Future fill:#f5f5f5,color:#000,stroke-dasharray: 5 5
4851
```
4952

5053
### Subgraph styling
54+
5155
```mermaid
5256
flowchart TB
5357
subgraph VPC["VPC: 10.0.0.0/16"]
@@ -71,6 +75,7 @@ flowchart LR
7175
```
7276

7377
**Styling specific links (by index):**
78+
7479
```mermaid
7580
flowchart LR
7681
A --> B
@@ -84,25 +89,26 @@ flowchart LR
8489
```
8590

8691
**Link style options:**
87-
| Property | Example | Description |
88-
|----------|---------|-------------|
89-
| `stroke` | `stroke:#000` | Line color |
90-
| `stroke-width` | `stroke-width:2px` | Line thickness |
91-
| `stroke-dasharray` | `stroke-dasharray:5,5` | Dashed line |
92+
93+
| Property | Example | Description |
94+
| ------------------ | ----------------------- | -------------- |
95+
| `stroke` | `stroke:#000` | Line color |
96+
| `stroke-width` | `stroke-width:2px` | Line thickness |
97+
| `stroke-dasharray` | `stroke-dasharray:5,5` | Dashed line |
9298

9399
## AWS Component Colors
94100

95-
| Component | Recommended Style |
96-
|-----------|-------------------|
97-
| VPC | `fill:#e3f2fd,color:#000` |
98-
| Public Subnet | `fill:#c8e6c9,color:#000` |
101+
| Component | Recommended Style |
102+
| -------------- | ------------------------- |
103+
| VPC | `fill:#e3f2fd,color:#000` |
104+
| Public Subnet | `fill:#c8e6c9,color:#000` |
99105
| Private Subnet | `fill:#fff9c4,color:#000` |
100-
| EC2 | `fill:#fff9c4,color:#000` |
101-
| RDS | `fill:#bbdefb,color:#000` |
102-
| S3 | `fill:#c8e6c9,color:#000` |
103-
| Load Balancer | `fill:#e1f5fe,color:#000` |
106+
| EC2 | `fill:#fff9c4,color:#000` |
107+
| RDS | `fill:#bbdefb,color:#000` |
108+
| S3 | `fill:#c8e6c9,color:#000` |
109+
| Load Balancer | `fill:#e1f5fe,color:#000` |
104110
| Security Group | `fill:#e8f5e9,color:#000` |
105-
| Error/Problem | `fill:#ffcdd2,color:#000` |
111+
| Error/Problem | `fill:#ffcdd2,color:#000` |
106112

107113
## Template
108114

0 commit comments

Comments
 (0)