Sheet 01 · Schema tree · Exploded assembly

Kavindu Ranathunga

Full-stack developer in Colombo. Every project below makes an invisible mechanism visible — a schema change before you commit it, a watch movement mid-disassembly, the orbit behind a moon phase.

Schema tree — exploded assemblyAn architectural blueprint of a schema tree. A root node inherits downward into three branches — Systems, Product and Craft — which in turn carry six projects: SchemaShift, TalentHub, Hotel Tamarind Tree, Prompta, Horologia and Luna.depth 0depth 1depth 2ROOTSYSTEMSPRODUCTCRAFTSCHEMASHIFTTALENTHUBTAMARINDPROMPTAHOROLOGIALUNAtitlesheetSCHEMA TREE01inherits downward
Scroll to assemble

Selected work

6 sheets · ordered by weight, not by date

01Deployed · in active development

SchemaShift

Pre-commit impact analysis for schema changes.

  • Blast radius before commit: categories affected, records affected, values that will not survive
  • plpgsql resolver mirrored in TypeScript — impact recomputed per keystroke, no round trip
  • Analysis proven read-only under test; migrations proven atomic under injected failure
  • Append-only audit trail via omitted UPDATE/DELETE RLS policies
  • 234 tests across 48 suites, 9 ordered migrations, 11 SQL test suites
  • Next.js 16
  • React 19
  • TypeScript
  • Supabase
  • PostgreSQL
  • Tailwind 4
02Deployed · in active development

Hotel Tamarind Tree

Booking platform for a boutique hotel near Yala National Park.

  • 11-model Prisma schema; rooms, units, rate plans, bookings, blocked dates, inquiries
  • Availability API prevents overlapping reservations; randomised unit allocation
  • Nightly Vercel cron expires abandoned bookings back to inventory
  • Admin dashboard for bookings, rooms and enquiries; Auth.js v5 with bcrypt
  • Stripe integration built, then removed — the property takes payment on arrival
  • Next.js 16
  • TypeScript
  • Prisma
  • PostgreSQL (Neon)
  • Auth.js v5
  • Resend
  • Vercel
03In production

TalentHub

Internship platform in production at Sri Lanka Telecom Mobitel.

  • Largest contributor — 207 of 652 commits; the next highest is 94
  • 37 pull requests merged to main
  • Rebuilt the interface across 27 of 35 screens, trainee portal and admin console
  • AI logbook validation degrades instead of breaking when the Gemini API is unavailable
  • 96-seat reservation map with custom pan, zoom, touch support and auto-fit
  • Facial-recognition and QR attendance merged into a single interface
  • Compliance logic consolidated into a shared working-days and holiday module, imported by five controllers and four services
  • Seven animated seasonal login themes with a backend switch
  • React 19
  • Node.js
  • Express 4
  • MongoDB
  • Mongoose
  • JWT
  • Google OAuth (Passport)
  • Tailwind CSS 4
  • Framer Motion
  • Vite
  • Google Gemini
Case studyInternal platform · no public repository
04Live

Horologia

Exploded 3D mechanical watch movement, disassembles on scroll.

  • 14 procedural components — gear train, escapement, balance wheel, tourbillon, 27 ruby jewels
  • Raycasting inspector giving material hardness, friction coefficient and horological function per part
  • Synthesised Web Audio ticking at 28,800 vph with alternating pallet clicks
  • Live PBR material lab with 5 presets; Firestore gallery with a LocalStorage fallback
  • Three.js
  • GSAP ScrollTrigger
  • Lenis
  • Web Audio API
  • Firebase
  • Vite
05Live

Prompta

Vault for AI prompts.

  • Folders, encrypted attachments, user-to-user delivery by email
  • One-click launch into ChatGPT, Claude, Gemini, DeepSeek and Grok
  • Framer Motion `layoutId` card-to-fullscreen morphs
  • Plain CSS, no utility framework; left-aligned scrollbar via an RTL trick
  • Next.js
  • React
  • TypeScript
  • Supabase
  • Framer Motion
06Live

Luna

Real-time moon phase, orbital position and sky panel.

  • Real-time moon phase, orbital position and geolocation-aware sky panel
  • Draggable 3D moon, custom lunar mathematics, comet cursor trail
  • React
  • Three.js (r3f)
  • GSAP
  • suncalc
  • GitHub Actions