What the demo is missing — and what this build proves
現状と証明The prototype at demo-cl-crm.crosslink-technologies.ph computes everything in the browser and loses it on reload. The engineering risk in this project is entirely on the backend: the schema, the API, the calculation logic, the approval rules. This demonstration removes that risk — each piece below is implemented and testable right now.
Architecture
構成図Database design
データ設計Every screen of the demo maps onto this schema. Cross-references mirror the UI: a client links to its deals, orders and delivery notes — exactly like the 関連受注 / 関連納品書 / 関連タラレバ tabs.
The approval workflow, enforced by the server
承認フローIllegal moves are refused with a Japanese-language 422 — try approving an already-approved note in the
API docs: 現在のステータス(承認済み)からこの操作はできません。
Every transition writes to the approvals history and the audit trail. Approved notes stream out as
GET /delivery-notes/export/csv with UTF-8 BOM so 経理 opens them cleanly in Excel.
KPI engine — your demo's math, server-side
計算エンジンThe demo computes these in the browser; here MySQL is the single source of truth. Create a deal for ¥999,999 through the API — the pipeline total recalculates instantly, the same live test you can run against this server.
| monthly target (targets) | ¥39,500,000 | |
| scheduled revenue (June orders) | − | ¥21,800,000 |
| gap to target | = | ¥17,700,000 |
| open pipeline (7 deals) | + | ¥111,000,000 |
| projected landing | = | ¥132,800,000 |
| achievement 達成率 | = | 55.2% |
Try the API
実際に叩くcurl -X POST https://…/api/v1/login \
-H "Content-Type: application/json" \
-d '{"email":"takabayashi@crosslink.co.jp","password":"demo1234"}'
# 2 — the dashboard, straight from MySQL
curl https://…/api/v1/dashboard/summary?period=2026-06 \
-H "Authorization: Bearer <token>"