feat: add MovieLoop and TehRiehlBudget projects with new Games branch
Add a Games parent node branching off the top of the Projects node, with MovieLoop (daily movie-chain web game built with React/NestJS) as its first child. Add TehRiehlBudget (self-hosted personal finance app) as a fourth child under Personal Tools, and stagger the Personal Tools children coordinates so they no longer stack on a perfect vertical line. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
d68a9d3ca1
commit
5e2cd60895
2 files changed
+58
-6
No files matched your search
+51
-6
@@ -256,6 +256,19 @@ export const treeNodes: TreeNode[] = [
|
|||||||
icon: '/icons/tools.svg',
|
icon: '/icons/tools.svg',
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// Games
|
||||||
|
{
|
||||||
|
id: 'proj-games',
|
||||||
|
label: 'Games',
|
||||||
|
description: 'Interactive games and playful experiments.',
|
||||||
|
x: -200,
|
||||||
|
y: -310,
|
||||||
|
parentId: 'proj-branch',
|
||||||
|
category: 'projects',
|
||||||
|
size: 'medium',
|
||||||
|
icon: '/icons/games.svg',
|
||||||
|
},
|
||||||
|
|
||||||
// ========== OPEN SOURCE CHILDREN ==========
|
// ========== OPEN SOURCE CHILDREN ==========
|
||||||
{
|
{
|
||||||
id: 'proj-tvdbapi',
|
id: 'proj-tvdbapi',
|
||||||
@@ -307,8 +320,8 @@ export const treeNodes: TreeNode[] = [
|
|||||||
id: 'proj-renameshow',
|
id: 'proj-renameshow',
|
||||||
label: 'Rename Show',
|
label: 'Rename Show',
|
||||||
description: 'Desktop application for batch renaming TV show files using metadata from TVDB and TMDB. Features undo support, multi-episode detection, and automatic show searching.',
|
description: 'Desktop application for batch renaming TV show files using metadata from TVDB and TMDB. Features undo support, multi-episode detection, and automatic show searching.',
|
||||||
x: -450,
|
x: -475,
|
||||||
y: -130,
|
y: -135,
|
||||||
parentId: 'proj-tools',
|
parentId: 'proj-tools',
|
||||||
category: 'projects',
|
category: 'projects',
|
||||||
size: 'small',
|
size: 'small',
|
||||||
@@ -320,8 +333,8 @@ export const treeNodes: TreeNode[] = [
|
|||||||
id: 'proj-portfolio',
|
id: 'proj-portfolio',
|
||||||
label: 'Skill Tree Portfolio',
|
label: 'Skill Tree Portfolio',
|
||||||
description: 'This interactive portfolio you\'re exploring right now! A Path of Exile inspired skill tree built with modern web technologies.',
|
description: 'This interactive portfolio you\'re exploring right now! A Path of Exile inspired skill tree built with modern web technologies.',
|
||||||
x: -450,
|
x: -480,
|
||||||
y: -50,
|
y: -60,
|
||||||
parentId: 'proj-tools',
|
parentId: 'proj-tools',
|
||||||
category: 'projects',
|
category: 'projects',
|
||||||
size: 'small',
|
size: 'small',
|
||||||
@@ -334,8 +347,8 @@ export const treeNodes: TreeNode[] = [
|
|||||||
id: 'proj-character-builder',
|
id: 'proj-character-builder',
|
||||||
label: 'Pathfinder 2E Character Builder',
|
label: 'Pathfinder 2E Character Builder',
|
||||||
description: 'Web-based character creation tool for Pathfinder 2E tabletop RPG. Features modern component-based architecture with comprehensive testing and code quality tooling.',
|
description: 'Web-based character creation tool for Pathfinder 2E tabletop RPG. Features modern component-based architecture with comprehensive testing and code quality tooling.',
|
||||||
x: -450,
|
x: -490,
|
||||||
y: 10,
|
y: 15,
|
||||||
parentId: 'proj-tools',
|
parentId: 'proj-tools',
|
||||||
category: 'projects',
|
category: 'projects',
|
||||||
size: 'small',
|
size: 'small',
|
||||||
@@ -344,6 +357,38 @@ export const treeNodes: TreeNode[] = [
|
|||||||
repoUrl: 'https://github.com/TehRiehlDeal/teh-riehl-character-builder',
|
repoUrl: 'https://github.com/TehRiehlDeal/teh-riehl-character-builder',
|
||||||
status: 'active'
|
status: 'active'
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
id: 'proj-budget',
|
||||||
|
label: 'TehRiehlBudget',
|
||||||
|
description: 'Self-hosted personal finance app tracking spending, balances, and net worth across checking, savings, credit, loans, and investments. Features field-level AES-256-GCM encryption, receipt uploads, audit logging, CSV export, and a local Ollama-powered AI advisor.',
|
||||||
|
x: -440,
|
||||||
|
y: 75,
|
||||||
|
parentId: 'proj-tools',
|
||||||
|
category: 'projects',
|
||||||
|
size: 'small',
|
||||||
|
icon: '/icons/react.svg',
|
||||||
|
techStack: ['React', 'TypeScript', 'NestJS', 'Prisma', 'PostgreSQL', 'TailwindCSS', 'ShadCN', 'Zustand', 'Supabase', 'Ollama'],
|
||||||
|
projectUrl: 'https://budget.tehriehldeal.com/',
|
||||||
|
repoUrl: 'https://git.tehriehldeal.com/TehRiehlDeal/TehRiehlBudget',
|
||||||
|
status: 'active'
|
||||||
|
},
|
||||||
|
|
||||||
|
// ========== GAMES CHILDREN ==========
|
||||||
|
{
|
||||||
|
id: 'proj-movieloop',
|
||||||
|
label: 'MovieLoop',
|
||||||
|
description: 'Daily challenge game where players chain movies through shared actors — a "six degrees of Kevin Bacon" reimagined for the web. Features leaderboards, daily and freeplay modes, undo support, and PWA install with push notifications.',
|
||||||
|
x: -260,
|
||||||
|
y: -390,
|
||||||
|
parentId: 'proj-games',
|
||||||
|
category: 'projects',
|
||||||
|
size: 'small',
|
||||||
|
icon: '/icons/react.svg',
|
||||||
|
techStack: ['React', 'TypeScript', 'Vite', 'NestJS', 'Prisma', 'PWA', 'Web Push', 'Docker'],
|
||||||
|
projectUrl: 'https://movieloop.tehriehldeal.com/',
|
||||||
|
repoUrl: 'https://git.tehriehldeal.com/TehRiehlDeal/movieloop-frontend',
|
||||||
|
status: 'active'
|
||||||
|
},
|
||||||
|
|
||||||
// ========== SKILLS (Bottom Right Quadrant) ==========
|
// ========== SKILLS (Bottom Right Quadrant) ==========
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Transformed by: SVG Repo Mixer Tools -->
|
||||||
|
<svg height="800px" width="800px" version="1.1" id="_x32_" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 512 512" xml:space="preserve" fill="#fff" stroke="#fff">
|
||||||
|
␍<g id="SVGRepo_bgCarrier" stroke-width="0"/>
|
||||||
|
␍<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
␍<g id="SVGRepo_iconCarrier"> <style type="text/css"> .st0{fill:#fff;} </style> <g> <path class="st0" d="M510.002,309.835l-0.068-0.326l-0.076-0.334l-26.508-112.721l-0.106-0.417l-0.106-0.418 c-16.668-62.217-73.294-105.666-137.712-105.666H166.579c-64.418,0-121.045,43.449-137.712,105.666l-0.114,0.418l-0.099,0.417 L2.147,309.174l-0.076,0.326l-0.068,0.326c-9.749,46.43,16.926,92.496,62.036,107.168l1.586,0.509 c9.24,3.012,18.89,4.544,28.624,4.544c32.668,0,63.128-17.404,79.758-45.489l22.556-33.343l0.561-0.835l0.509-0.872 c0.796-1.388,2.276-2.253,3.861-2.253h109.02c1.586,0,3.066,0.865,3.862,2.253l0.508,0.872l0.562,0.835l22.555,33.343 c16.63,28.085,47.09,45.489,79.766,45.489c9.734,0,19.384-1.532,28.67-4.56l1.533-0.493 C493.07,402.331,519.737,356.257,510.002,309.835z M439.318,390.397l-1.54,0.501c-6.608,2.154-13.353,3.186-20.014,3.186 c-22.646,0-44.283-11.949-56.088-32.433l-23.064-34.101c-5.788-10.053-16.508-16.258-28.101-16.258h-109.02 c-11.592,0-22.312,6.206-28.101,16.258l-23.063,34.101c-11.804,20.484-33.434,32.433-56.081,32.433 c-6.661,0-13.405-1.032-20.013-3.186l-1.548-0.501c-31.431-10.219-50.102-42.485-43.311-74.819l26.508-112.722 c13.42-50.102,58.826-84.94,110.696-84.94h178.847c51.869,0,97.276,34.838,110.696,84.94l26.508,112.722 C489.413,347.912,470.75,380.178,439.318,390.397z"/> <polygon class="st0" points="157.453,172.061 123.912,172.061 123.912,210.579 85.387,210.579 85.387,244.105 123.912,244.105 123.912,282.637 157.453,282.637 157.453,244.105 195.978,244.105 195.978,210.579 157.453,210.579 "/> <path class="st0" d="M365.721,206.247c11.668,0,21.113-9.445,21.113-21.098c0-11.669-9.445-21.114-21.113-21.114 c-11.653,0-21.098,9.445-21.098,21.114C344.622,196.802,354.068,206.247,365.721,206.247z"/> <path class="st0" d="M323.509,206.247c-11.653,0-21.106,9.453-21.106,21.098c0,11.669,9.453,21.122,21.106,21.122 c11.661,0,21.106-9.453,21.106-21.122C344.615,215.7,335.17,206.247,323.509,206.247z"/> <path class="st0" d="M365.721,248.459c-11.653,0-21.098,9.445-21.098,21.114c0,11.653,9.445,21.098,21.098,21.098 c11.668,0,21.113-9.445,21.113-21.098C386.834,257.904,377.388,248.459,365.721,248.459z"/> <path class="st0" d="M407.933,206.247c-11.653,0-21.099,9.453-21.099,21.098c0,11.669,9.446,21.122,21.099,21.122 c11.66,0,21.113-9.453,21.113-21.122C429.046,215.7,419.593,206.247,407.933,206.247z"/> </g> </g>
|
||||||
|
␍</svg>
|
||||||
|
After Width: | Height: | Size: 2.8 KiB |
Reference in new issue
Block a user