ADR-001 · Proposed · 12/11/2026

Webapp cá nhân: tài chính & sức khỏe

Bản trực quan của tài liệu thiết kế. Mọi thứ ở đây là đề xuất chờ duyệt, chưa có gì được xây. Các điểm đánh dấu chưa chắc cần thử thật trước.

Tổng quan trong 30 giây

Một app trên iPhone, ba nguyên tắc.

💰 Tài chính: chỉ đọc

Base Lark hiện có (đã đồng bộ ngân hàng) vẫn là sổ gốc. App chỉ đọc để vẽ báo cáo, không bao giờ ghi vào Base.

❤️ Sức khỏe: dữ liệu mới

Cân nặng, bệnh án, bữa ăn, mục tiêu lưu trong DB riêng của app (Cloudflare D1). Ảnh lưu kín trên R2.

🤖 AI: chỉ soạn nháp

AI đọc ảnh, giọng nói, viết gợi ý. Mọi con số tiền, thuốc, calo phải anh xác nhận rồi mới lưu.

Kiến trúc

Trình duyệt không giữ bất kỳ khóa bí mật nào. Mọi kết nối ra ngoài đi qua backend.

iPhone Webapp (PWA) 📷 camera · 🎙 giọng ✅ màn xác nhận Backend Cloudflare Workers 🔐 đăng nhập 1 người 🗝 giữ mọi secret ⏰ cron: cache, sao lưu D1 sức khỏe, ăn uống R2 ảnh (kín) Lark Base tài chínhsổ gốc · có Bank Sync · app chỉ đọc OpenRouter (AI)đọc ảnh · tách câu nói · gợi ý Stravahoạt động đi bộ Open-Meteothời tiết theo thành phố dl.vietqr.io → app MBmở MB điền sẵn · anh tự bấm chuyển HTTPS bấm "Chuyển bằng MB" (mở thẳng từ điện thoại)
gọi / ghichỉ đọc (không ghi ngược)

Tính năng

9 module. Màu cho biết dữ liệu nằm ở đâu.

📊 Dashboard tài chính Base

  • Chi theo nhóm, so tháng trước
  • Số dư từng tài khoản
  • Nhắc giao dịch chưa phân loại
  • Bấm tổng → xem dòng gốc

📲 Quét QR → MB D1

  • Quét QR người nhận trong app
  • Ghi số tiền, nội dung, nhóm
  • Mở MB điền sẵn, anh bấm chuyển
  • Tự khớp khi giao dịch về Base

⚖️ Sức khỏe tự đo D1

  • Cân nặng, ngủ, huyết áp, nước
  • Biểu đồ so với mục tiêu

🩺 Bệnh án D1 + R2

  • Chụp → AI trích xuất nháp
  • Lần khám · đơn thuốc · xét nghiệm
  • Xem ảnh cạnh ô, sửa, xác nhận
  • Xóa hẳn được

🍜 Dinh dưỡng D1

  • Nhãn thành phần: đọc số (chính xác)
  • Món không nhãn: khoảng calo ước tính
  • Bảng thực phẩm của anh lớn dần

🎯 Mục tiêu theo giai đoạn D1

  • Giảm / giữ / tăng cân, hạn mức chi
  • Code tính calo mục tiêu
  • Có ngưỡng an toàn cố định

🌦 Thời tiết Open-Meteo

  • Gợi ý mặc gì, ăn gì, uống nước
  • Mỗi sáng một lần

🚶 Strava & Apple Health Strava

  • Kéo hoạt động đi bộ tự động
  • Apple Health: nhập file, để sau

🎙 Giọng nói AI

  • Nói "trưa ăn bún bò tô vừa"
  • AI tách thành bản ghi nháp
  • Bước đầu dùng micro bàn phím iPhone

Luồng chuyển khoản

App không chuyển tiền. Anh luôn là người bấm xác nhận trong MB.

1Quét QR người nhận trong app
→
2Code đọc ngân hàng, số tài khoản
→
3Anh nhập số tiền, nội dung, nhóm
→
4Mở MB, đã điền sẵn
→
5 · anhXem tên người nhận, bấm chuyển
→
6Bank Sync về Base, app tự khớp

Nếu MB trên iPhone không tự điền: app tạo QR để quét từ ảnh trong MB, hoặc nút sao chép số tiền + nội dung.

Ai làm gì

Tách bạch để con số quan trọng không phụ thuộc vào việc AI đoán.

🤖 AI

  • Đọc ảnh, câu nói thành bản nháp
  • Nhận diện món ăn
  • Diễn giải số liệu, viết gợi ý

⚙️ Code

  • Tổng tiền, tổng calo
  • Calo mục tiêu, ngưỡng cảnh báo
  • Đọc QR, khớp giao dịch

👤 Anh

  • Xác nhận mọi số tiền
  • Xác nhận thuốc, liều, chỉ số
  • Bấm chuyển tiền trong MB

🚫 Không bao giờ gửi cho AI

Số tài khoản, token, thông tin định danh trên bệnh án (khi che được).

Lộ trình

Mỗi giai đoạn dùng được ngay. Chỉ bắt đầu khi bài thử tương ứng đạt.

Duyệt thiết kế

Chốt rủi ro, chọn tên miền, tạo tài khoản dịch vụ.

Nền tảng

Đăng nhập · dashboard tài chính · ghi sức khỏe · mục tiêu · nhập bằng chữ/giọng · sao lưu

cần P1 P2 P3

Dinh dưỡng

Nhãn thành phần · bảng thực phẩm · ảnh món ăn · calo mục tiêu

cần P4 P5

Chuyển khoản

Quét QR · mở MB điền sẵn · khớp giao dịch

cần P6 P7 P8

Bệnh án

Trích xuất có cấu trúc · che định danh

cần P9 P10

Mở rộng

Strava · thời tiết · gợi ý tổng hợp · ghi âm · offline · Apple Health

cần P11 P12

12 bài thử trước khi xây

Dùng dữ liệu giả hoặc số tiền nhỏ trên tài khoản của anh. Ngưỡng đạt do anh chốt.

#Thử gìĐạt khiNếu không đạt
P1Đọc Base, tải dashboard 10 lầnVài giây, không bị giới hạnCache lâu hơn
P2Sao lưu, xóa, khôi phụcĐủ dữ liệuChưa nhập dữ liệu thật
P3Nói 10 câu mẫuKhông sai số tiền, đơn vịNhập số bằng bàn phím
P410 ảnh nhãn thành phầnSố đúng sau khi soátNhập tay
P510 món quenKhoảng calo hợp lýChọn món từ bảng
P6Quét 5 QR trong app trên iPhoneĐúng ngân hàng, số tài khoảnChọn ảnh QR
P7Mở MB điền sẵn trên iPhoneĐủ 3 trườngQR tự tạo / sao chép
P8Chuyển 3 khoản nhỏKhớp được tự độngAnh khớp tay
P95 bệnh án mẫu (chữ in + tay)Thuốc, liều, ngày đúngChỉ lưu ảnh + ghi chú
P10Che định danh trước khi gửiKhông lộ tên, mã BNAnh tự cắt ảnh
P11Strava 30 ngàyĐủ, không trùngNhập tay
P12Ghi âm + mất mạngKhông mất, không trùngBỏ ghi âm / offline

Rủi ro

Ảnh bệnh án qua OpenRouter đã chấp nhận

Điều kiện: che định danh khi được, chọn model không giữ dữ liệu.

Số tài khoản qua dl.vietqr.io cần duyệt

Bên thứ ba thấy số tài khoản người nhận, số tiền, nội dung. Chưa xem chính sách dữ liệu của họ.

Calo ảnh món ăn lệch lớn đã chấp nhận

Luôn hiện khoảng, gắn nhãn "ước tính".

Dịch vụ ngoài đổi / ngừng có dự phòng

Mỗi tích hợp có cách thay thế.

Cần anh duyệt

  • Chấp nhận rủi ro dl.vietqr.io
  • Cách tính báo cáo: bỏ "Chuyển khoản nội bộ"; tách "Tiết kiệm/Đầu tư" và "Nợ/Vay"
  • Chưa dùng bảng "Chi tiết chia tiền" ở bản đầu
  • Thời tiết theo vị trí cố định
  • Thứ tự 5 giai đoạn
  • Ngưỡng đạt cho 12 bài thử