Architecture Overview - ScrumGuides/ScrumGuide-ExpansionPack GitHub Wiki
This document provides a detailed overview of the Scrum Guide Expansion Pack's technical -Architecture-Overview and design decisions.
Technology Stack
Core Technologies
- Hugo - Static site generator (Extended version required)
- Bootstrap 5 - CSS framework for responsive design
- Font Awesome - Icon library
- Azure Static Web Apps - Hosting platform
-Development-Guide Tools
- Git - Version control
- GitHub Actions - CI/CD pipeline
- PowerShell - Scripting and automation
- Markdown - Content authoring
System -Architecture-Overview
graph TB
A[Content Authors] --> B[Markdown Files]
B --> C[Hugo Build Process]
C --> D[Static HTML/CSS/JS]
D --> E[Azure Static Web Apps]
F[Translators] --> G[i18n YAML Files]
G --> C
H[Developers] --> I[Layouts & Templates]
I --> C
J[GitHub Actions] --> C
E --> K[CDN Distribution]
K --> L[End Users]
Directory Structure Deep Dive
/site/
- Hugo Source
The main Hugo site directory containing all source files:
site/
βββ content/ # Markdown content files
β βββ _index.md # Homepage content
β βββ creators/ # Creator profiles
β βββ download/ # Download pages
β βββ guide/ # Main guide content
βββ layouts/ # HTML templates
β βββ _default/ # Default templates
β βββ guide/ # Guide-specific layouts
β βββ partials/ # Reusable components
βββ static/ # Static assets
β βββ css/ # Custom stylesheets
β βββ images/ # Images and graphics
β βββ pdf/ # PDF files
βββ data/ # Structured data files
βββ i18n/ # Translation files
βββ hugo.yaml # Hugo -Configuration-Reference
/docs/
- Documentation
Comprehensive project documentation for contributors and maintainers.
/public/
- Generated Output
Auto-generated static site files (not committed to version control in production).
-Configuration-Reference Files
hugo.yaml
- Main Hugo -Configuration-Referencehugo.*.yaml
- Environment-specific -Configuration-Referencesstaticwebapp.config.*.json
- Azure Static Web Apps -Configuration-References
Content -Architecture-Overview
Multilingual Support
The site supports multiple languages using Hugo's built-in i18n features:
- English (
en
) - Default language - German (
de
) - Deutsch - Spanish (
es
) - EspaΓ±ol - French (
fr
) - FranΓ§ais
Content Types
- Guide Content - Main Scrum expansion content
- Creator Profiles - Information about authors
- Download Pages - PDF and resource downloads
- Static Pages - About, legal, etc.
Template Hierarchy
Hugo follows a specific template lookup order:
layouts/guide/single.html
- Guide-specific templatelayouts/_default/single.html
- Default single page templatelayouts/_default/baseof.html
- Base template
Key Templates
baseof.html
- Base template with common HTML structuresingle.html
- Individual page templatelist.html
- List/index page templateindex.html
- Homepage template
Build Process
-Development-Guide Build
cd site
hugo server -D --bind 0.0.0.0 --port 1313
Production Build
cd site
hugo --minify --environment production
Environment -Configuration-References
- Local (
hugo.local.yaml
) - -Development-Guide settings - Preview (
hugo.preview.yaml
) - Preview/staging settings - Canary (
hugo.canary.yaml
) - Canary release settings - Production (
hugo.yaml
) - Production settings
-Deployment-Guide -Architecture-Overview
Azure Static Web Apps
The site is deployed using Azure Static Web Apps with:
- Automatic builds from GitHub Actions
- Custom domains support
- SSL certificates automatically managed
- CDN distribution globally
- Environment-specific -Deployment-Guides
-Deployment-Guide Environments
- Production - Main live site
- Preview - Staging environment
- Canary - Early access features
Performance Considerations
Optimization Strategies
- Static generation - No server-side processing
- Minification - CSS, JS, and HTML minification
- Image optimization - Responsive images and WebP support
- CDN delivery - Global content distribution
- Caching headers - Aggressive caching for static assets
Build Performance
- Incremental builds during -Development-Guide
- Asset bundling and minification
- Template caching for faster rebuilds
Security -Architecture-Overview
Content Security
- Static files only - No server-side vulnerabilities
- HTTPS only - All traffic encrypted
- CSP headers - Content Security Policy implementation
Access Control
- Repository access - GitHub permissions
- -Deployment-Guide access - Azure permissions
- Review process - Pull request requirements
Monitoring and Analytics
Built-in Monitoring
- Google Analytics - Traffic and user behavior
- Azure Application Insights - Performance monitoring
- GitHub Actions - Build and -Deployment-Guide status
Content Metrics
- Page views per language
- Download statistics for PDFs
- User engagement metrics
Extensibility
Adding New Languages
- Create new i18n file in
i18n/[lang].yaml
- Add language -Configuration-Reference in
hugo.yaml
- Create translated content in
content/
directory - Update navigation templates
Adding New Content Types
- Create content archetype in
archetypes/
- Design specific layout in
layouts/
- Configure front matter requirements
- Update navigation and menus
Custom Functionality
- Shortcodes for reusable content components
- Partial templates for shared functionality
- Data files for structured content
- Custom CSS/JS for enhanced features
Future Considerations
Scalability
- Content growth - Efficient content organization
- Language expansion - Additional Translation-Guide
- Feature additions - New content types and functionality
Technology Updates
- Hugo updates - Regular framework updates
- Dependency management - Bootstrap and other libraries
- Security patches - Keeping dependencies current
π Back to: Documentation Home
β‘οΈ Next: -Development-Guide Guide