Synaplan
Open-source AI platform for companies: self-hosted AI agents, GDPR-compliant chatbot widget, RAG knowledge base, WhatsApp and Outlook AI, MCP, multi-model routing. Docker, Kubernetes or hosted in Germ
Edit and preview invoices, manage work orders, and create split invoices for staff
AI summary · website content
BusinessHTML · JavaScriptGitHub @brynross-labOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗A simpler, phone-first version of the staff portal. It is a separate app that reads the
same Firebase database as the current portal (ecoair-portal). The current portal's
code and deployment are not touched.
config.js has READ_ONLY: false: v2 saves to the same Firestore records as the current
portal, so staff can use either one and see the same data.
READ_ONLY: true and redeploy. Every save, upload and delete is
then refused in the browser, and a yellow "Preview" bar shows.vercel from
inside the folder).. (the folder root).eco-air-portal-v2.vercel.app. The current
eco-air-portal.vercel.app project stays exactly as it is.Nothing needs building; it's plain HTML, CSS and JavaScript like the current portal.
| Tab | What it does |
|---|---|
| Home | Today's work, your assigned lot tasks, and one To do list: approvals, work orders ready to invoice, open flags, follow-ups. Admins also see business totals. |
| Sites | Builder → site → one page with Map, Lots, Work orders, Masters, Files. Lots are coloured by stage from invoiced work orders, same as now. Tap a lot for its flags, work orders, masters, documents and tasks. |
| Schedule | Week view of work orders (by their date), invoices and scheduled jobs, filterable by person. |
| More | Invoices (active / tendered), Jobs and clients, Flags, Approvals, Staff accounts, Activity. |
| + New | Work order, Measure sheet, Estimate, Invoice, Job, Site map. |
So that what gets saved is identical to the current portal:
tools/workorder.html, tools/measure.html, tools/estimate.html: exact copies of the
builders embedded in the current portal.tools/v2-skin.css: the v2 look for the Work Order and Measure builders. It's added on top
of their own styles when they open in v2. It changes appearance only; their calculations,
saving and PDFs are untouched.invoice-engine.js: the current invoice builder's code (totals, HST, apprentice/partner
pay, split invoices, PDF layout). Two small screen-only changes are noted at the top.legacy-compat.js: union price defaults and migration, the measure-sheet record shape,
and the invoice side effects (calendar events, crew names).Everything else (app-*.js, styles.css, index.html) is new.
The Measure tool's Read Photo button sends a photo of a handwritten measure sheet to
Claude, which fills in the form. In v2 this goes through api/claude-proxy.js, a small Vercel
function (the old portal called a Netlify function that doesn't exist on Vercel).
To switch it on, in Vercel → this project → Settings → Environment Variables add:
ANTHROPIC_API_KEY: a Claude API key from console.anthropic.com. Required.CLAUDE_MODEL: optional, defaults to claude-sonnet-5-5.Then redeploy. Only signed-in staff can use it: each request carries the user's sign-in and the
function checks it against the staff collection before calling Claude. It reads photos and
fills the form only; nothing is saved until someone saves the measure sheet.
Branding, the price-rate editor, Trash/restore, and merging or renaming builders and sites. More → "Still in the current portal" links there.
staff collection, and the database rules must allow the browser to read them. That
means anyone with the web config can read the database. Moving both portals to Firebase
Authentication with proper security rules is the recommended next step.eco-air-portal) that's hard-coded inside it. That's unchanged from today.