FLOWCHART.md
May 5, 2026 Β· View on GitHub
π Hack23 Homepage β Flowcharts
Process Flows: CI/CD, Deployment, and Content Management
Workflow Documentation for hack23.com
π Document Owner: CEO | π Version: 1.1 | π
Last Updated: 2026-04-21 (UTC)
π Review Cycle: Quarterly | β° Next Review: 2026-07-21
π·οΈ Classification:
π Related Documentation
| Document | Focus | Description |
|---|---|---|
| ποΈ Architecture | C4 Model | System structure and containers |
| π Data Model | Data | Content model and data structures |
| π Flowchart | Processes | Process flows (this document) |
| π State Diagram | States | Deployment and content lifecycle |
| π§ Mindmap | Concepts | System conceptual relationships |
| π Workflows | CI/CD | GitHub Actions workflow details (10 workflows) |
| π‘οΈ Security Architecture | Security | Defense-in-depth controls |
| π― Threat Model | Threats | STRIDE / MITRE ATT&CK analysis |
| π BCP Plan | Resilience | Business continuity & recovery flows |
| π‘οΈ CRA Assessment | Compliance | EU Cyber Resilience Act conformity |
| π Future Flowchart | Roadmap | Planned process improvements |
π― Overview
This document provides comprehensive flowcharts for the Hack23 homepage, documenting all major processes across the 10 GitHub Actions workflows that power the project: CI/CD deployment (main.yml), pull-request validation (pullrequest.yml), continuous quality (quality-checks.yml), supply-chain scoring (scorecards.yml), dependency review (dependency-review.yml), versioned releases with SLSA Level 3 attestation (release.yml), Copilot environment provisioning (copilot-setup-steps.yml), PR labelling (labeler.yml), repository label baseline (setup-labels.yml), and agentic workflow compilation (compile-agentic-workflows.yml).
π Main Deployment Flow
%%{init: {"theme": "base", "themeVariables": {"primaryColor": "#2196F3", "primaryTextColor": "#1a1a2e", "lineColor": "#455A64", "secondaryColor": "#e8f5e9", "tertiaryColor": "#fff8e1", "primaryBorderColor": "#1565C0"}}}%%
flowchart TD
Start([π Code Push to Main]) --> Checkout[Checkout Repository]
Checkout --> Setup[Setup Node.js 26]
Setup --> Validate{Validate Content}
Validate --> HTMLHint[π HTMLHint Linting]
Validate --> HTML5Val[β
HTML5 Validation]
Validate --> LinkCheck[π Link Checking]
HTMLHint --> QualityGate{Quality Gate}
HTML5Val --> QualityGate
LinkCheck --> QualityGate
QualityGate -->|Pass| Minify[π¦ Minify HTML/CSS/JS]
QualityGate -->|Fail| FailNotify[β Notify Failure]
Minify --> Deploy[βοΈ Deploy to S3]
Deploy --> Invalidate[π CloudFront Cache Invalidation]
Invalidate --> Lighthouse[π Lighthouse Audit]
Lighthouse --> SecurityScan[π‘οΈ ZAP Security Scan]
SecurityScan --> Complete([β
Deployment Complete])
FailNotify --> End([π Pipeline Failed])
style Start fill:#2979FF,stroke:#0D47A1,color:#fff
style Complete fill:#00C853,stroke:#00796B,color:#fff
style End fill:#FF3D00,stroke:#BF360C,color:#fff
π Pull Request Verification Flow
%%{init: {"theme": "base", "themeVariables": {"primaryColor": "#2196F3", "primaryTextColor": "#1a1a2e", "lineColor": "#455A64", "secondaryColor": "#e8f5e9", "tertiaryColor": "#fff8e1", "primaryBorderColor": "#1565C0"}}}%%
flowchart TD
PR([π Pull Request Opened]) --> Harden[π Harden Runner]
Harden --> Checkout[π₯ Checkout Code]
Checkout --> SetupNode[βοΈ Setup Node.js 26]
SetupNode --> ParallelChecks{Parallel Checks}
ParallelChecks --> HTMLHint[π HTMLHint]
ParallelChecks --> HTML5Val[β
HTML5 Validator]
ParallelChecks --> LinkCheck[π Linkinator]
HTMLHint --> Results{All Checks Pass?}
HTML5Val --> Results
LinkCheck --> Results
Results -->|Yes| Approve[β
Ready for Review]
Results -->|No| RequestChanges[β Request Changes]
Approve --> Review[π€ Code Review]
Review --> Merge{Approved?}
Merge -->|Yes| MergeToMain[π Merge to Main]
Merge -->|No| Update[π Update PR]
Update --> ParallelChecks
MergeToMain --> DeployTrigger([π Trigger Deploy])
style PR fill:#2979FF,stroke:#0D47A1,color:#fff
style Approve fill:#00C853,stroke:#00796B,color:#fff
style RequestChanges fill:#FF3D00,stroke:#BF360C,color:#fff
π Content Update Flow
%%{init: {"theme": "base", "themeVariables": {"primaryColor": "#2196F3", "primaryTextColor": "#1a1a2e", "lineColor": "#455A64", "secondaryColor": "#e8f5e9", "tertiaryColor": "#fff8e1", "primaryBorderColor": "#1565C0"}}}%%
flowchart TD
Start([π Content Change Needed]) --> Identify{Change Type}
Identify -->|New Page| CreatePage[Create HTML Page]
Identify -->|Edit Content| EditHTML[Edit Existing HTML]
Identify -->|Translation| Translate[Create Language Variant]
Identify -->|Blog Post| CreateBlog[Create Blog Post]
CreatePage --> AddMeta[Add Meta Tags & Schema.org]
EditHTML --> ValidateMeta[Verify Meta Tags]
Translate --> AddHreflang[Add Hreflang Tags]
CreateBlog --> AddBlogMeta[Add Blog Metadata]
AddMeta --> UpdateSitemap[πΊοΈ Update Sitemap]
ValidateMeta --> UpdateSitemap
AddHreflang --> UpdateSitemap
AddBlogMeta --> UpdateSitemap
UpdateSitemap --> CheckI18n{Multi-language<br/>Impact?}
CheckI18n -->|Yes| UpdateTranslations[Update All Language Variants]
CheckI18n -->|No| CreatePR[Create Pull Request]
UpdateTranslations --> CreatePR
CreatePR --> CIChecks[βοΈ CI Verification]
CIChecks --> Deploy([π Deploy])
style Start fill:#2979FF,stroke:#0D47A1,color:#fff
style Deploy fill:#00C853,stroke:#00796B,color:#fff
π‘οΈ Security Scanning Flow
%%{init: {"theme": "base", "themeVariables": {"primaryColor": "#2196F3", "primaryTextColor": "#1a1a2e", "lineColor": "#455A64", "secondaryColor": "#e8f5e9", "tertiaryColor": "#fff8e1", "primaryBorderColor": "#1565C0"}}}%%
flowchart TD
Trigger([π Scheduled / Push]) --> Scorecard[π OpenSSF Scorecard]
Trigger --> CodeQL[π CodeQL Analysis]
Trigger --> DepReview[π¦ Dependency Review]
Scorecard --> Results{Security Results}
CodeQL --> Results
DepReview --> Results
Results -->|Issues Found| Triage[π Triage Findings]
Results -->|Clean| Passed[β
Security Passed]
Triage --> Severity{Severity?}
Severity -->|Critical/High| Immediate[π¨ Immediate Fix]
Severity -->|Medium| Planned[π Planned Fix]
Severity -->|Low| Backlog[π Add to Backlog]
Immediate --> Fix[π§ Apply Fix]
Fix --> Verify[β
Verify Fix]
Verify --> Results
Passed --> Report[π Update Security Dashboard]
style Trigger fill:#2979FF,stroke:#0D47A1,color:#fff
style Passed fill:#00C853,stroke:#00796B,color:#fff
style Immediate fill:#FF3D00,stroke:#BF360C,color:#fff
π Quality Assurance Flow
%%{init: {"theme": "base", "themeVariables": {"primaryColor": "#2196F3", "primaryTextColor": "#1a1a2e", "lineColor": "#455A64", "secondaryColor": "#e8f5e9", "tertiaryColor": "#fff8e1", "primaryBorderColor": "#1565C0"}}}%%
flowchart LR
Input[π HTML Pages] --> Lint[π HTMLHint<br/>Syntax Check]
Lint --> Validate[β
HTML5 Validator<br/>W3C Compliance]
Validate --> Links[π Linkinator<br/>Broken Links]
Links --> A11y[βΏ Lighthouse<br/>Accessibility]
A11y --> Perf[β‘ Lighthouse<br/>Performance]
Perf --> SEO[π Lighthouse<br/>SEO Score]
SEO --> Output{All Passing?}
Output -->|Yes| Ready[β
Quality Approved]
Output -->|No| Fix[π§ Fix Issues]
Fix --> Input
style Input fill:#2979FF,stroke:#0D47A1,color:#fff
style Ready fill:#00C853,stroke:#00796B,color:#fff
ποΈ Release Build Flow
%%{init: {"theme": "base", "themeVariables": {"primaryColor": "#2196F3", "primaryTextColor": "#1a1a2e", "lineColor": "#455A64", "secondaryColor": "#e8f5e9", "tertiaryColor": "#fff8e1", "primaryBorderColor": "#1565C0"}}}%%
flowchart TD
Tag([π·οΈ Tag Push / Manual]) --> Checkout[π₯ Checkout]
Checkout --> Setup[βοΈ Setup Node.js 26]
Setup --> Minify[π¦ Minify Assets]
Minify --> Attest[π Generate SLSA Attestation]
Attest --> Release[π¦ Create GitHub Release]
Release --> Deploy[βοΈ Deploy to Production]
Deploy --> PostDeploy[π Post-Deploy Verification]
PostDeploy --> Done([β
Release Complete])
style Tag fill:#2979FF,stroke:#0D47A1,color:#fff
style Done fill:#00C853,stroke:#00796B,color:#fff
π ISMS Compliance
These process flows align with:
- π Secure Development Policy β CI/CD security requirements
- π Vulnerability Management β Security scanning and remediation
- π Information Security Policy β Change management processes