docs: establish approved Phase 1 design + Phase 2 spec as project foundation

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
cesnimda
2026-07-03 21:07:25 +02:00
commit 1f695d3932
39 changed files with 2686 additions and 0 deletions
@@ -0,0 +1,91 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 1560" font-family="Segoe UI, Arial, sans-serif">
<rect width="1440" height="1560" fill="#0B0E14"/>
<text x="120" y="44" fill="#E5A93D" font-family="Consolas, monospace" font-size="12">M6: homepage lower half — projects · experience timeline · about teaser · contact band</text>
<!-- ===== PROJECTS ===== -->
<text x="120" y="110" fill="#3ECFAE" font-family="Consolas, monospace" font-size="12" letter-spacing="2">02 — PROJECTS</text>
<text x="120" y="162" fill="#E8ECF2" font-size="39" font-weight="600">Built, shipped, and running</text>
<!-- card 1: JobTrack (hover state shown) -->
<rect x="120" y="200" width="588" height="470" rx="12" fill="#11151D" stroke="#E8ECF2" stroke-opacity="0.16"/>
<rect x="120" y="200" width="588" height="280" rx="12" fill="#171C26"/>
<rect x="120" y="464" width="588" height="16" fill="#171C26"/>
<text x="414" y="348" fill="#5C6675" font-size="12" text-anchor="middle">[ JobTrack — applications table screenshot, 4px hover shift ]</text>
<rect x="600" y="220" width="88" height="26" rx="13" fill="#0B0E14" stroke="#3ECFAE" stroke-opacity="0.4"/>
<circle cx="616" cy="233" r="3.5" fill="#3ECFAE"/>
<text x="628" y="238" fill="#3ECFAE" font-family="Consolas, monospace" font-size="10">ACTIVE</text>
<text x="148" y="524" fill="#E8ECF2" font-size="24" font-weight="600">JobTrack</text>
<line x1="148" y1="532" x2="248" y2="532" stroke="#3ECFAE" stroke-width="2"/>
<text x="148" y="556" fill="#9AA4B2" font-size="14">One workspace for the whole job-application journey —</text>
<text x="148" y="576" fill="#9AA4B2" font-size="14">pipeline, correspondence, attachments, AI summaries.</text>
<g font-family="Consolas, monospace" font-size="11" fill="#9AA4B2">
<rect x="148" y="594" width="60" height="24" rx="12" fill="#171C26"/><text x="178" y="610" text-anchor="middle">.NET 9</text>
<rect x="216" y="594" width="56" height="24" rx="12" fill="#171C26"/><text x="244" y="610" text-anchor="middle">React</text>
<rect x="280" y="594" width="66" height="24" rx="12" fill="#171C26"/><text x="313" y="610" text-anchor="middle">SQLite</text>
<rect x="354" y="594" width="66" height="24" rx="12" fill="#171C26"/><text x="387" y="610" text-anchor="middle">Ollama</text>
<rect x="428" y="594" width="66" height="24" rx="12" fill="#171C26"/><text x="461" y="610" text-anchor="middle">Docker</text>
</g>
<text x="148" y="646" fill="#3ECFAE" font-size="14">Read case study →→</text>
<!-- card 2: InboxIntel (rest state) -->
<rect x="732" y="200" width="588" height="470" rx="12" fill="#11151D" stroke="#E8ECF2" stroke-opacity="0.08"/>
<rect x="732" y="200" width="588" height="280" rx="12" fill="#171C26"/>
<rect x="732" y="464" width="588" height="16" fill="#171C26"/>
<text x="1026" y="348" fill="#5C6675" font-size="12" text-anchor="middle">[ InboxIntel — draggable analytics dashboard screenshot ]</text>
<rect x="1156" y="220" width="146" height="26" rx="13" fill="#0B0E14" stroke="#E5A93D" stroke-opacity="0.4"/>
<circle cx="1172" cy="233" r="3.5" fill="#E5A93D"/>
<text x="1184" y="238" fill="#E5A93D" font-family="Consolas, monospace" font-size="10">IN DEVELOPMENT</text>
<text x="760" y="524" fill="#E8ECF2" font-size="24" font-weight="600">InboxIntel</text>
<text x="760" y="556" fill="#9AA4B2" font-size="14">Gmail analytics and safe bulk cleanup — Clean Architecture,</text>
<text x="760" y="576" fill="#9AA4B2" font-size="14">encrypted OAuth tokens, preview-before-delete by design.</text>
<g font-family="Consolas, monospace" font-size="11" fill="#9AA4B2">
<rect x="760" y="594" width="60" height="24" rx="12" fill="#171C26"/><text x="790" y="610" text-anchor="middle">.NET 8</text>
<rect x="828" y="594" width="100" height="24" rx="12" fill="#171C26"/><text x="878" y="610" text-anchor="middle">PostgreSQL</text>
<rect x="936" y="594" width="56" height="24" rx="12" fill="#171C26"/><text x="964" y="610" text-anchor="middle">React</text>
<rect x="1000" y="594" width="96" height="24" rx="12" fill="#171C26"/><text x="1048" y="610" text-anchor="middle">Gmail API</text>
</g>
<text x="760" y="646" fill="#3ECFAE" font-size="14">Read case study →</text>
<!-- slim homelab card -->
<rect x="120" y="694" width="1200" height="92" rx="12" fill="#11151D" stroke="#E8ECF2" stroke-opacity="0.08"/>
<g stroke="#3ECFAE" stroke-width="1.3" fill="none" opacity="0.8">
<rect x="152" y="722" width="24" height="16" rx="2"/><rect x="152" y="744" width="24" height="16" rx="2"/>
<path d="M176 730 h20 v22 h-20 M186 730 v-8 h30"/>
</g>
<text x="240" y="732" fill="#E8ECF2" font-size="18" font-weight="600">Self-hosted infrastructure lab</text>
<text x="240" y="758" fill="#9AA4B2" font-size="14">Ubuntu · Docker services · reverse proxy · auth · monitoring · Gitea (this site's own git remote)</text>
<text x="1180" y="746" fill="#3ECFAE" font-size="14">Explore →</text>
<!-- ===== EXPERIENCE ===== -->
<text x="120" y="884" fill="#3ECFAE" font-family="Consolas, monospace" font-size="12" letter-spacing="2">03 — EXPERIENCE</text>
<text x="120" y="936" fill="#E8ECF2" font-size="39" font-weight="600">Where I've worked</text>
<!-- timeline spine -->
<line x1="160" y1="972" x2="160" y2="1270" stroke="#E8ECF2" stroke-opacity="0.12" stroke-width="1.5"/>
<!-- featured -->
<circle cx="160" cy="990" r="5" fill="#3ECFAE"/>
<text x="196" y="996" fill="#E8ECF2" font-size="20" font-weight="600">System Developer — Warwickshire County Council</text>
<text x="196" y="1020" fill="#5C6675" font-family="Consolas, monospace" font-size="12">2015 2023 · UK public sector · full-stack</text>
<text x="196" y="1050" fill="#9AA4B2" font-size="15">· Replaced spreadsheet-heavy workflows with reliable internal systems used across the council</text>
<text x="196" y="1076" fill="#9AA4B2" font-size="15">· Built and maintained full-stack applications in C#, Python, Ruby on Rails, SQL and JavaScript</text>
<text x="196" y="1102" fill="#9AA4B2" font-size="15">· Owned deployments, permissions hardening and production troubleshooting on live systems</text>
<!-- compact items -->
<circle cx="160" cy="1150" r="4" fill="#5C6675"/>
<text x="196" y="1156" fill="#9AA4B2" font-size="14">2017 2021 · Sales Representative · Royal Vapes</text>
<circle cx="160" cy="1188" r="4" fill="#5C6675"/>
<text x="196" y="1194" fill="#9AA4B2" font-size="14">2016 2018 · Bartender · The Hodcarrier</text>
<circle cx="160" cy="1226" r="4" fill="#5C6675"/>
<text x="196" y="1232" fill="#9AA4B2" font-size="14">2014 2015 · Receptionist · Nuffield Health</text>
<circle cx="160" cy="1264" r="4" fill="#5C6675"/>
<text x="196" y="1270" fill="#9AA4B2" font-size="14">2012 2015 · Extended Diploma NVQ L3 in ICT · Warwickshire College</text>
<text x="196" y="1300" fill="#5C6675" font-family="Consolas, monospace" font-size="12">earlier customer-facing roles — kept for honesty, de-emphasised · timeline draws on scroll (A8)</text>
<!-- ===== CONTACT BAND ===== -->
<rect x="120" y="1360" width="1200" height="140" rx="16" fill="#171C26"/>
<text x="160" y="1418" fill="#E8ECF2" font-size="28" font-weight="600">Looking for a systems developer in Norway?</text>
<text x="160" y="1450" fill="#9AA4B2" font-size="15">I usually reply within a day — e-mail is fastest.</text>
<rect x="880" y="1404" width="300" height="48" rx="8" fill="#3ECFAE"/>
<text x="1030" y="1434" fill="#062A22" font-size="15" font-weight="600" text-anchor="middle">connor.babbington@cesnimda.co.uk ⧉</text>
<text x="1216" y="1434" fill="#062A22" font-size="0">copy</text>
<text x="1230" y="1432" fill="#9AA4B2" font-size="14">Contact form →</text>
</svg>

After

Width:  |  Height:  |  Size: 7.6 KiB