Edge
Get Edge to manage all of your crypto assets. The most secure way to buy, store and trade crypto under your control Accounts Created + 0 MM Assets Supported + 0 Languages Supported 0 Countries Support
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證A SiteLedger built for Algosoup's take home assessment.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Live: https://site-ledger-lyart.vercel.app
Small landlords and builders upload building invoices (PDF or photo). SiteLedger reads each invoice with Claude, checks it in code, and files it under the right property and month. Clean invoices file automatically. Anything that fails a check goes to a Needs Review queue, where a person corrects it and confirms it, or rejects it. Each property has a dashboard and an Excel download that is always up to date.
The live app is loaded with a fictional company (Charbak Contracting) and three fictional properties: Mars (MR1 4RS), Jupiter (JP4 2GS) and Saturn (ST6 9RR). The receipts in examples/ are fictional PDFs and phone photos from five suppliers (contact sheet, ground truth). They are split by whether they are already in the app.
examples/not-on-the-system/: upload these to see them processed fresh.
| File | What happens |
|---|---|
05_mars_knotty.pdf | Files automatically under Mars |
10_jupiter_knotty.jpg | Photo; files automatically under Jupiter |
15_saturn_orbital.jpg | Photo; files automatically under Saturn (October) |
07_jupiter_hammer.jpg | Till receipt with only a total, so it goes to Needs Review. The "JOB REF" hint names the property. |
09_jupiter_pipedream.pdf | No delivery address, so it goes to Needs Review. The "Your Reference" hint names the property. |
examples/on-the-system/: already filed (or waiting in Needs Review). Upload any of these to see the duplicate check catch it.
Delete anything you like. On a property's page, each invoice row has a Delete button, which removes the invoice and its stored file. A deleted receipt can then be uploaded again from examples/ and is treated as new. In Needs Review, Reject removes an invoice from totals.
Then open Needs Review to correct and file an invoice, and open a property for its dashboard and Download Excel.
samples/ has 6 more generated PDFs covering the failure cases: wrong arithmetic, a duplicate of sample 01, and no delivery address. None are on the system. Regenerate them with npm run samples.
node --env-file=.env scripts/eval-examples.mjs uploads all 15 receipts (both folders) and scores the result against examples/ground_truth.csv. The live run scored 65/75 fields correct: 10 filed automatically and 5 went to review.
upload ─► validate file ─► daily cap ─► extractInvoice() ─► checks (code) ─► Blob + Postgres
(Claude reads) │
├─ all pass ─► filed: properties/{property}/{YYYY-MM}/{supplier}-{no}.{ext}
└─ any fail ─► Needs Review: review/{id}.{ext} ─► edit ─► re-check ─► filed / rejected
extractInvoice(file) (src/lib/extraction) is the single AI touchpoint: Claude Sonnet 5.5 with structured outputs, validated by zod, every field nullable. A mock implementation (EXTRACTOR=mock) returns fixed data.See db/schema.sql.
company: your billing address.
properties: name, plus a normalised unique postcode.
invoices:
filed | needs_review | rejected;A CHECK constraint guarantees every filed invoice is complete.
extraction_usage: the daily counter.
Next.js 16 (App Router, Cache Components) · TypeScript · Tailwind · Neon Postgres · Vercel Blob · Anthropic SDK (Claude Sonnet 5.5) · zod · exceljs · vitest · pdf-lib (samples).
npm install
cp .env.example .env # fill in the values
npm run db:setup # create tables and seed demo data (idempotent)
npm run check-env # verify Postgres, Blob and Anthropic credentials
npm test # unit tests
npm run dev
Out of scope for this 2-hour build:
Improvements noted along the way: