Skip to content

MVP and User Flow

ThanhDat edited this page Oct 8, 2025 · 8 revisions

MVP Features

Tính năng Mô tả Lý do
1. Đăng ký / Đăng nhập Email / Phone hoặc “Continue as Guest” Lưu dữ liệu người dùng, phân biệt dữ liệu, bảo mật cơ bản.
2. Quản lý liên hệ (Debtor) Thêm / Sửa / Xóa người nợ (tên, phone, email, note) Tính năng cốt lõi.
3. Tạo nhắc nợ (Debt Entry) Số tiền, hạn trả, mô tả, lặp lại (tùy chọn), mức ưu tiên Tính năng cốt lõi.
4. Danh sách & Dashboard đơn giản Upcoming / Overdue / All UX tối thiểu.
5. Thông báo & Reminders In-app + Push local Đảm bảo người dùng nhận nhắc đúng hạn.
6. Đánh dấu “Đã trả” / Snooze / Ghi chú Cập nhật trạng thái, lưu lịch sử thanh toán Cần hành động sau khi nhận nhắc.
7. Lịch sử (Timeline) Lưu log cho từng debtor / debt item Minh bạch, tra cứu nhanh.
8. Cài đặt thông báo cơ bản Thời điểm trước hạn, tắt/bật push Giúp người dùng tùy chỉnh trải nghiệm.

Impact–Effort Matrix

Impact \ Effort Low Effort High Effort
High Impact Quick wins:
- Thêm người nợ
- Tạo nhắc đơn giản
- Đánh dấu “Đã trả”
- Dashboard cơ bản
Major projects:
- Multi-channel (SMS/Email)
- Recurring + timezone correctness
- Báo cáo, thống kê theo thời gian
- Push notifications
Low Impact Fill-ins:
- Theme / UI nhỏ
- Import/Export CSV
Time sinks:
- Payment integration
- Multi-currency
- Full 2FA + SSO enterprise

MVP Scope (First Release)

✅ Quản lý liên hệ
✅ Tạo nhắc nợ
✅ Dashboard
✅ Push/In-app minimal
✅ Đánh dấu đã trả
✅ Lịch sử cơ bản
✅ Cài đặt thông báo
✅ Guest login

Lùi (Post-MVP):

  • SMS/Email reminders
  • Payment integration
  • Multi-user/group debts
  • Import bank statements

User Flows

Xem sơ đồ chi tiết tại đây

Flow 1: Tạo nhắc nợ (Create Reminder)

Step-by-step

  1. Mở app → nếu chưa login, chọn “Continue as Guest” hoặc Đăng ký.
  2. Tại Dashboard, nhấn Thêm người nợ.
  3. Nhập thông tin: Tên, Số điện thoại, Email (tùy chọn), Ghi chúLưu.
  4. Mở hồ sơ người nợ vừa thêm → chọn Tạo nhắc nợ.
  5. Nhập:
    • Số tiền
    • Ngày hết hạn
    • Thời điểm nhắc (VD: 1 ngày trước, sáng ngày đến hạn)
    • Bật lặp lại (optional)
  6. Client gửi request đến server → server tạo record + schedule job vào queue.
  7. Hiển thị xác nhận, trả về Dashboard → mục Upcoming hiển thị item mới.

Edge cases

  • Nếu offline: lưu local, sync khi có mạng.
  • Validate: amount > 0, dueDate >= today.
  • Nếu là guest: chỉ lưu local hoặc nhắc đăng ký để sync.

Flow 2: Nhận & xử lý thông báo (Remind & Mark Paid)

Step-by-step

  1. Khi đến thời điểm trigger → server/worker gửi push notification (hoặc local alarm nếu app đang foreground).
  2. Notification hiển thị:
    • Tiêu đề
    • Tên người nợ
    • Số tiền
    • Hạn trả
  3. User tap vào thông báo → mở chi tiết nhắc nợ.
  4. Trong detail view có 3 nút:
    • Đã trả
    • Nhắc lại (Snooze)
    • Liên hệ
  5. Nếu chọn Đã trả:
    • Hiện confirm dialog (có thể nhập ngày/ghi chú).
    • Khi confirm → cập nhật trạng thái, lưu history, hủy reminder lặp.
  6. Nếu chọn Nhắc lại (Snooze):
    • Chọn thời gian snooze (1h / 1d).
    • App schedule lại local job hoặc gửi request server tạo nhắc mới.
  7. Nếu chọn Liên hệ:
    • Mở dialer hoặc chat app theo cài đặt.

Edge cases

  • Nếu offline, push có thể không tới → app nên có local fallback (local notification).
  • Khi mark paid, nếu có nhiều reminder lặp → cần rule rõ (hủy tất cả hay chỉ instance hiện tại).

Clone this wiki locally