The front door. Use it to jump into the main modules quickly.
Justin-O Command Center
About Justin-O
Recovered system loreIn the late 1990s, Justin O. was the most overqualified IT technician in Lima: part cable whisperer, part IT helpdesk, and unofficial guardian of a very posh British school’s computer lab. He kept aging beige PCs alive, revived failing floppy disks, and quietly patrolled the network like a digital groundskeeper.
Then came Logan.
A cheeky student with too much time and zero restraint, Logan treated the lab like his personal playground. He queued endless downloads on Napster, swapped dodgy MP3s over ICQ, filled the hard drives with suspiciously named “homework” files, and kept opening far more browser windows than any academic purpose could justify.
Justin shut him down. Logan came back smarter.
The tension built quietly—until one afternoon, when Logan pushed it too far. Dozens of simultaneous downloads, chat windows pinging nonstop, corrupted files clogging the system—everything collided at once.
The lab froze. Then flickered. Then exploded with Justin inside it.
To save what remained, the school nurse, two robotics-club students, rebuilt Justin as an android and sealed him inside a cryogenic server cabinet behind the drama department.
In 2026, he was defrosted, updated, and reassigned to London.
His mission: restore order, defeat chaos and help serviced-apartment operators reconcile revenue. And never again let Logan near a computer.
User Guide
Beginner-friendly notes for using Justin-O safely and confidently.
Start Here
First five minutes- Open Justin-O and enter the shared team password.
- Use Overview to jump to the area you need.
- Use Financial Report for topline numbers and trends.
- Use Meetings for a compact weekly pack view.
- Use Suggestion Box if something feels missing or unclear.
What Each Section Does
Quick mapMain KPI dashboard with revenue, profit, building mix, and report settings.
Used to classify bank transactions into the P&L structure.
Guest review analytics, property scorecards, and recent themes.
Weekly management snapshot: finance, reviews, agenda, and suggestions.
Reference pages for buildings, people, and future improvement ideas.
Where Things Live
Drive vs projectUse this for the Excel workbook, PDFs, and files in meeting pack/.
The dashboard itself lives mainly in app/ and api/.
sqlite_migration/ contains the import and transform scripts plus the canonical local database.
See the root README.md, HANDOFF.md, DEPLOYMENT_NOTES.md, and SUPABASE_SETUP.md.
Safe Working Rules
Important- Use Google Drive for business files and GitHub for code changes.
- Do not edit
app/data.jsmanually unless you know it was intentionally regenerated. - Do not put passwords, keys, or sensitive notes into tracked files.
- If unsure, write the question in Suggestion Box or ask Codex before changing anything.
- Prefer small, reversible changes instead of broad edits across many files.
Recommended Workflow
For a new collaborator- Read the root
HANDOFF.md. - Open the dashboard and browse Overview, Financial Report, Meetings, and Suggestion Box.
- Use your own Codex to inspect files and ask questions before editing.
- Keep notes, Excel files, and meeting materials in Drive.
- Make app or script changes through the Git repo, not by editing a synced Drive copy at the same time as someone else.
Good Codex Prompts
Easy starting pointsExplain what this project does and which files matter most.Show me how the Financial Report page gets its numbers.What is safe for me to edit if I only want to change text or labels?Create a small change and explain it in plain English.Review my planned change before I do it.
Properties
Buildings and unit typesFinancial Report
Property Performance
Rental revenue by buildingChannel Mix
Rental revenue and commission exposureUnit Type Mix
Revenue concentrationP&L Analysis
Revenue to net incomeReport Settings
Financial report logic and impactData Audit
See what changed on refresh, where archive backfills come from, and what still needs attention.
Latest Refresh
Refresh Delta
Compared with the prior audited refreshArchive Backfill
Backfill Reservation Refs
Reservations present in archive workbooks but absent from the current importLatest Findings
Transform drift, archive gaps, and scan notesTransactions
Classify bank transactions into the P&L structure used by the financial report.
Transaction Classifier
Edits update the dashboard view immediatelyCategory Manager
Category, subcategory, and P&L item type hierarchyMeetings
Weekly pack view: financial snapshot, review signals, agenda, and actions.
Financial Snapshot
Review Snapshot
Agenda
Meeting pack structureOpen Suggestions
Inputs from the teamSuggestion Box
Ideas for Justin-OMaintenance
Operational notes for keeping Justin-O running from local development through VPS checks and Vercel deployment.
Standard Workflow
Local to live- Make and test changes on the local PC first.
- Commit and push the change to GitHub.
- Pull the same branch on the VPS for a server-side preview when needed.
- Let Vercel deploy the pushed GitHub version as the live site.
Local Run
Static dashboardpython3 -m http.server 8000 --directory /home/sergio/projects/justin-o
http://127.0.0.1:8000/app/index.html
Use the shared team password.
VPS Preview
Public server checkpython3 -m http.server 8000 --bind 0.0.0.0 --directory /home/sergio/projects/justin-o
http://<VPS_PUBLIC_IP>:8000/app/index.html
Use this as a preview of the repository version before or after a live deployment.
Live Site
Vercel- Vercel deploys from the GitHub repository.
- The static dashboard is served from
/app/index.html. - The root page redirects into the app.
- Suggestion Box persistence needs Supabase environment variables in Vercel.
Do Not Edit Casually
High-risk filesapp/data.jsis generated from the reporting pipeline.sqlite_migration/financial_report_canonical.sqliteis the canonical local database.- Supabase and Vercel credentials belong in environment variables, not tracked files.
- Financial report workbooks and meeting packs should stay as source or audit material.
Useful Checks
Before deploygit status --shortcurl -I http://127.0.0.1:8000/app/index.htmlcurl -I http://127.0.0.1:8000/app/data.js- Open Overview, Financial Report, Meetings, and Suggestion Box in the browser.
Team
People behind the London Collection command center.
Jaime AKA La Beba
Managing Director
London & Madrid
Milcris
Senior Client Services Agent
Philippines
Rose
Client Services Agent
Philippines
Hans AKA Social
Board Member
San Francisco
Juan AKA Alien
Board Member
Liverpool
Sergio AKA Rojo
Board Member
Malta