Module Việc phải làm giúp bạn quản lý các công việc định kỳ và theo dõi tiến độ thực hiện, bao gồm:
Module này giúp bạn không bỏ sót các công việc quan trọng như bảo dưỡng xe, thay lõi lọc nước, kiểm tra định kỳ, v.v.
Sử dụng module này khi bạn có:
isActive = true)Lưu ý: Việc theo chu kỳ (CYCLE type) không có nút “Ghi nhận” trong card. Ghi nhận chỉ thực hiện ở màn “Danh sách đến hạn” (bell list).
Mục tiêu: Tạo một việc phải làm theo chu kỳ để app tự động nhắc nhở khi đến hạn.
Các bước chính:
Wireframe - Màn hình Thêm việc phải làm theo chu kỳ:
┌──────────────────────────────────────────────┐
│ < Thêm việc phải làm theo chu kỳ │
├──────────────────────────────────────────────┤
Tên việc
[ Thay lõi lọc nước ]
Chu kỳ lặp
Mỗi [ 3 ] [ Tháng ▼ ]
(Đơn vị: Ngày / Tuần / Tháng / Năm)
Ngày đến hạn tiếp theo
[ 01 / 03 / 2026 ▼ ]
Hint:
Ngày đến hạn cho lần đầu tiên.
Các lần tiếp theo sẽ tự động tính theo chu kỳ bạn đã nhập.
Nhận thông báo lúc
[ 08 : 00 ▼ ]
──────────────────────────────────────────────
[✓] Việc này có phát sinh chi phí
┌─────────────────────────────────────┐
│ Danh mục * │
│ [Tiền điện nước ▼] [+ Tạo mới] │
└─────────────────────────────────────┘
──────────────────────────────────────────────
Ghi chú (tùy chọn)
[ ]
[ ]
[ ]
──────────────────────────────────────────────
[ Hủy ] [ Lưu ]
└──────────────────────────────────────────────┘
Mục tiêu: Tạo một việc phải làm theo chỉ số để theo dõi việc bảo dưỡng xe dựa trên số km.
Các bước chính:
Wireframe - Màn hình Thêm việc phải làm theo chỉ số:
┌──────────────────────────────────────────────┐
│ < Thêm việc phải làm theo chỉ số │
├──────────────────────────────────────────────┤
Tên việc
[ Thay nhớt xe ]
Chu kỳ
Mỗi [ 2,000 ] Đơn vị [ Km ]
(Đơn vị: Km / Giờ / Lần / ...)
Chỉ số tại lần làm gần nhất
[ 12,500 ]
──────────────────────────────────────────────
[✓] Việc này có phát sinh chi phí
┌─────────────────────────────────────┐
│ Danh mục * │
│ [Bảo dưỡng xe ▼] [+ Tạo mới] │
└─────────────────────────────────────┘
──────────────────────────────────────────────
Ghi chú (tùy chọn)
[ ]
[ ]
[ ]
──────────────────────────────────────────────
[ Hủy ] [ Lưu ]
└──────────────────────────────────────────────┘
Mục tiêu: Xem tổng quan các việc phải làm, lọc theo loại, tìm kiếm, và xem chi tiết từng việc.
Các bước chính:
Wireframe - Màn hình Danh sách việc phải làm:
┌─────────────────────────────────────────────────────────┐
│ [← Back] Việc phải làm [🔔] │
└─────────────────────────────────────────────────────────┘
│ 🔍 Tìm kiếm... │
│ │
│ [Tất cả] [Theo chu kỳ] [Theo chỉ số] │
│ │
│ ┌─────────────────────────────────────────────────┐ │
│ │ Card: Thay lõi lọc nước │ │
│ │ ┌─────────────────────────────────────────────┐ │ │
│ │ │ Thay lõi lọc nước [Đã làm] [🗑️ Delete] │ │ │
│ │ │ │ │ │
│ │ │ 📅 Chu kỳ: Mỗi 3 tháng │ │ │
│ │ │ ✅ Ngày làm gần nhất: 01/12/2025 │ │ │
│ │ │ 📅 Ngày đến hạn tiếp theo: 01/03/2026 │ │ │
│ │ │ ⏳ Còn 76 ngày │ │ │
│ │ │ ───────────────────────────────────────────── │ │ │
│ │ │ Xem lịch sử › [⚪ Active]│ │ │
│ │ └─────────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────┐ │
│ │ Card: Thay nhớt xe │ │
│ │ ┌─────────────────────────────────────────────┐ │ │
│ │ │ Thay nhớt xe [🗑️ Delete] │ │ │
│ │ │ │ │ │
│ │ │ 📏 Theo dõi: Km │ │ │
│ │ │ ✅ Xác nhận gần nhất: 02/12/2025 │ │ │
│ │ │ 🔢 Chỉ số lần gần nhất: 12.500 km │ │ │
│ │ │ 🎯 Đến hạn tiếp theo: 14.500 km │ │ │
│ │ │ ⏳ Còn ~300 km │ │ │
│ │ │ ───────────────────────────────────────────── │ │ │
│ │ │ [✓ Ghi nhận] │ │ │
│ │ │ ───────────────────────────────────────────── │ │ │
│ │ │ Xem lịch sử › [⚪ Active]│ │ │
│ │ └─────────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────┘ │
│ │
│ [+ FAB] │
└─────────────────────────────────────────────────────────┘
Mục tiêu: Ghi nhận đã thực hiện việc theo chỉ số bằng cách nhập chỉ số hiện tại.
Các bước chính:
Wireframe - Dialog Ghi nhận việc theo chỉ số:
┌──────────────────────────────────────────────┐
│ Ghi nhận việc theo chỉ số │
├──────────────────────────────────────────────┤
Tên việc:
Thay nhớt xe (readonly)
Theo dõi:
Km (readonly)
Chỉ số lần làm gần nhất:
12,500 Km (readonly)
──────────────────────────────────────────────
Chỉ số tại thời điểm làm
[ 14,520 ] Km
Chênh lệch:
+2,020 Km (auto)
──────────────────────────────────────────────
Ghi chú
[ ]
[ ]
[ ]
──────────────────────────────────────────────
[ Chưa nhận ] [ Đã nhận ]
└──────────────────────────────────────────────┘
Mục tiêu: Chỉnh sửa thông tin việc phải làm và xem lịch sử các lần đã thực hiện.
Các bước chính:
Wireframe - Màn hình Lịch sử việc phải làm:
┌─────────────────────────────────────────────────────────┐
│ [← Back] Lịch sử việc - Thay lõi lọc nước │
└─────────────────────────────────────────────────────────┘
│ [Tất cả] [Tháng này] [Tháng trước] [3 tháng gần nhất] │
│ │
│ ┌─────────────────────────────────────────────────┐ │
│ │ Thay lõi lọc nước [Đã làm] │ │
│ │ │ │
│ │ 📅 Chu kỳ: Mỗi 3 tháng │ │
│ │ ✅ Ngày đã làm: 01/12/2025 – 09:10 │ │
│ │ 📝 Ghi chú: Thay lõi số 1 và số 2 │ │
│ └─────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────┐ │
│ │ Thay lõi lọc nước [Đã làm] │ │
│ │ │ │
│ │ 📅 Chu kỳ: Mỗi 3 tháng │ │
│ │ ✅ Ngày đã làm: 01/09/2025 – 08:45 │ │
│ └─────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
Mục tiêu: Tạm ngưng hoặc xóa việc phải làm khi không còn cần thiết.
Các bước chính:
Mục tiêu: Ghi nhận việc theo chỉ số và tự động nhập chi tiêu liên quan.
Các bước chính:
Wireframe - Dialog Phát sinh chi phí:
┌──────────────────────────────────────────────┐
│ Phát sinh chi phí? │
├──────────────────────────────────────────────┤
Bạn có muốn nhập chi tiêu cho lần ghi nhận này
không?
[ Hủy ] [ Nhập chi tiêu ]
└──────────────────────────────────────────────┘
isActive = true)nextDueDate - today > 7 ngày0 < nextDueDate - today ≤ 7 ngàynextDueDate < today và chưa xác nhậnisActive = falselastMetricValue = chỉ số hiện tạinextMetricValue = chỉ số hiện tại + chu kỳlastCompletedDate = ngày hôm nayhasCost = true: Hiển thị dialog “Phát sinh chi phí?” sau khi ghi nhận thành cônginitialNote, initialCategoryId, todoHistoryIdnextDueDate >= hôm nay)isActive = true).Bell Icon: Bell icon ở header để navigate đến màn “Danh sách đến hạn” (bell list) nơi user có thể ghi nhận các việc đến hạn (chỉ cho CYCLE type).
Khóa chu kỳ/đơn vị: Nếu đã có lịch sử, chu kỳ (CYCLE) hoặc đơn vị/chu kỳ (METRIC) sẽ bị khóa và không thể sửa để đảm bảo tính nhất quán của dữ liệu.
Validation chỉ số: Khi ghi nhận việc theo chỉ số, chỉ số hiện tại phải ≥ chỉ số lần làm gần nhất. Nếu không, app sẽ hiển thị lỗi và không cho phép ghi nhận.
Chi phí phát sinh: Nếu việc có phát sinh chi phí (hasCost = true), sau khi ghi nhận thành công, app sẽ hỏi có muốn nhập chi tiêu không. Nếu chọn “Nhập chi tiêu”, app sẽ tự động điền sẵn ghi chú và danh mục.
Xóa việc: Khi xóa việc, tất cả lịch sử liên quan cũng sẽ bị xóa (cascade delete). Thông báo cũng sẽ được hủy.
Tạm ngưng: Khi tạm ngưng việc CYCLE type, thông báo sẽ được hủy. Khi kích hoạt lại, thông báo sẽ được lên lịch lại (nếu nextDueDate >= hôm nay).