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:
TehRiehlDealandClaude Opus 4.7 committed 2026-05-04 15:37:29 -07:00
1 parent d68a9d3ca1
commit 5e2cd60895
2 files changed
+58 -6

No files matched your search

+51 -6
View File
@@ -256,6 +256,19 @@ export const treeNodes: TreeNode[] = [
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 ==========
{
id: 'proj-tvdbapi',
@@ -307,8 +320,8 @@ export const treeNodes: TreeNode[] = [
id: 'proj-renameshow',
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.',
x: -450,
y: -130,
x: -475,
y: -135,
parentId: 'proj-tools',
category: 'projects',
size: 'small',
@@ -320,8 +333,8 @@ export const treeNodes: TreeNode[] = [
id: 'proj-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.',
x: -450,
y: -50,
x: -480,
y: -60,
parentId: 'proj-tools',
category: 'projects',
size: 'small',
@@ -334,8 +347,8 @@ export const treeNodes: TreeNode[] = [
id: 'proj-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.',
x: -450,
y: 10,
x: -490,
y: 15,
parentId: 'proj-tools',
category: 'projects',
size: 'small',
@@ -344,6 +357,38 @@ export const treeNodes: TreeNode[] = [
repoUrl: 'https://github.com/TehRiehlDeal/teh-riehl-character-builder',
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) ==========
{