Mô tả chi tiết
1. Xác thực & Phân quyền
| Tính năng | Mô tả |
|---|---|
| Đăng nhập/Đăng xuất | Username/password với SHA-256 hash |
| Session token | Token ngẫu nhiên, hết hạn sau 8 giờ, lưu CacheService + PropertiesService |
| Setup admin ban đầu | Tạo tài khoản admin đầu tiên khi chưa có user nào |
| Phân quyền 3 cấp | Admin (toàn quyền) → Manager (quản lý dự án/task) → Employee (chỉ task của mình) |
| Ma trận quyền | Kiểm soát: tạo/xóa dự án, quản lý user, xem báo cáo, giao task, chỉnh sửa task |
2. Quản lý Dự án
| Tính năng | Mô tả |
|---|---|
| CRUD dự án | Tạo, sửa, xóa, xem chi tiết dự án |
| Nhóm dự án (group_name) | Phân loại dự án theo nhóm ngành (VD: Xây dựng, Marketing, Công nghệ...) |
| Tiến độ tự động | Tự động tính % hoàn thành dựa trên số task done/total |
| Màu sắc dự án | Mỗi dự án có màu riêng, random hoặc tuỳ chọn |
| Thành viên dự án | Tự động gom danh sách thành viên từ assignees của task |
| Thống kê dự án | Tổng task, task done, task quá hạn cho mỗi dự án |
3. Quản lý Công việc (Task)
| Tính năng | Mô tả |
|---|---|
| CRUD task | Tạo, sửa, xóa, xem chi tiết |
| 6 trạng thái | todo, in_progress, review, done, paused, cancelled |
| 3 mức ưu tiên | high, medium, low |
| Subtask | Tạo, sửa, xóa, đánh dấu hoàn thành, sắp xếp vị trí |
| Checklist | JSON checklist tích hợp trong task |
| Gán task đa người | Gán nhiều người (primary assignee + task_assignees với role contributor) |
| Task cha-con | parent_task_id cho cấu trúc task phân cấp |
| Nhân bản task | Duplicate task với đầy đủ thông tin |
| Thao tác hàng loạt | Batch update status, batch delete, batch assign |
| Tìm kiếm task | Lọc theo project, status, priority, assignee, tag, deadline, overdue, keyword |
| Tags/Nhãn | Gắn tag có màu cho task, quản lý tag (CRUD) |
| Tự động set ngày hoàn thành | completed_date tự động khi chuyển status → done |
| Giờ ước lượng/thực tế | estimated_hours + actual_hours tự tính từ time entries |
4. Phụ thuộc Task (Dependencies)
| Tính năng | Mô tả |
|---|---|
| Thêm/xóa dependency | Kiểu finish-to-start |
| Chặn chuyển trạng thái | Không cho in_progress/review nếu dependency chưa done |
| Phát hiện vòng tròn | BFS circular dependency detection |
| Dependencies cho Gantt | Lấy tất cả dependency trong 1 dự án |
5. Theo dõi Thời gian (Time Tracking)
| Tính năng | Mô tả |
|---|---|
| Bấm giờ (Timer) | Start/stop timer realtime, tự tính duration |
| Nhập giờ thủ công | Thêm time entry không cần timer |
| Chống chạy song song | Lock chỉ cho 1 timer chạy/user |
| Timesheet | Báo cáo thời gian theo user, lọc theo ngày, tổng hợp tổng giờ |
| Tự động cập nhật actual_hours | Recalc khi thêm/xóa time entry |
6. Thông báo (Notifications)
| Tính năng | Mô tả |
|---|---|
| In-app notifications | Polling thông báo chưa đọc |
| Đánh dấu đã đọc tất cả | markAllNotificationsRead |
| Email thông báo | Gửi qua Gmail khi có task quá hạn |
| Telegram Bot | Webhook handler với lệnh /tasks, /overdue, /stats, /link |
| Nhắc deadline tự động | Trigger hàng ngày lúc 8h, cảnh báo trước N ngày (tuỳ chỉnh) |
| Thông báo khi giao task | Notify assignee khi được giao/giao lại task |
| Thông báo comment | Notify khi có bình luận mới + @mention |
| Thông báo hoàn thành | Notify khi task được đánh dấu done |
| Theo dõi task (Watchers) | Watch/unwatch task, tự động nhận thông báo khi task thay đổi |
7. Bình luận (Comments)
| Tính năng | Mô tả |
|---|---|
| Thêm/xóa comment | Bình luận trên mỗi task |
| @Mention | Tag người dùng trong comment, tự notify |
| Đính kèm file | attachments_json support |
8. Quản lý File
| Tính năng | Mô tả |
|---|---|
| Upload file → Google Drive | Tự động tạo folder QLCV_Files/{user}/{Task_ID} |
| Chia sẻ link | File tự set quyền "Anyone with link" |
| Xoá file | Soft delete DB + trash file trên Drive |
9. Công việc Lặp lại (Recurring Tasks)
| Tính năng | Mô tả |
|---|---|
| Tạo quy tắc lặp | daily, weekly, monthly với interval tuỳ chỉnh |
| Chọn ngày chạy | day_of_week (tuần), day_of_month (tháng) |
| Template từ task gốc | Clone task với đầy đủ info |
| Tự động tạo task | processRecurringTasks() chạy theo trigger |
| Hết hạn quy tắc | end_date auto-expire |
10. Tự động hóa (Automation)
| Tính năng | Mô tả |
|---|---|
| Follow-up tự động | Tự tạo task follow-up khi task có tag [AUTO_FOLLOWUP] hoàn thành |
| Dọn notification cũ | Xoá notification đã đọc > 30 ngày |
| Queue xử lý nền | Bulk import tasks, email digest qua queue sheet |
| Automation rules | Lưu/quản lý rules tuỳ chỉnh trong settings |
11. Custom Workflow (Kanban)
| Tính năng | Mô tả |
|---|---|
| Workflow mặc định | 4 cột: Chưa bắt đầu → Đang làm → Chờ duyệt → Hoàn thành |
| Custom workflow / dự án | Tạo cột tuỳ chỉnh với màu sắc, is_done flag |
| Tự động tính progress | Dựa trên custom workflow columns |
12. Dashboard & Báo cáo
| Tính năng | Mô tả |
|---|---|
| Dashboard tổng quan | Tổng/todo/in_progress/review/done/overdue + task sắp đến hạn |
| Thống kê dự án | Top 10 dự án, task count, done count |
| Báo cáo theo khoảng thời gian | Lọc from/to, thống kê tổng, theo nhân viên |
| Hiệu suất nhân viên | Tổng task, done, overdue cho mỗi user |
| Xuất báo cáo Google Sheet | Tạo sheet mới với dữ liệu thống kê |
| Xuất báo cáo PDF | Tạo Google Doc → Convert PDF tự động |
| Burndown Chart | Dữ liệu ideal vs actual theo ngày (max 90 ngày) |
| Velocity Chart | Task hoàn thành theo tuần (12 tuần gần nhất) |
13. Lịch & Xem theo thời gian
| Tính năng | Mô tả |
|---|---|
| Đồng bộ Google Calendar | Tạo event từ task deadline lên Calendar cá nhân |
| Calendar view | Trang xem lịch công việc |
| Gantt chart view | Trang biểu đồ Gantt |
| Kanban board view | Trang bảng Kanban kéo thả |
14. Quản lý Nhân viên
| Tính năng | Mô tả |
|---|---|
| CRUD nhân viên | Tạo, sửa, xóa, vô hiệu hoá tài khoản |
| Hồ sơ nhân viên | Tên, email, SĐT, phòng ban, avatar, Telegram ID |
| Khối lượng công việc | Thống kê task/user (total, in_progress, done, overdue) |
15. Templates
| Tính năng | Mô tả |
|---|---|
| Tạo template dự án | Lưu cấu hình tasks mẫu (JSON) |
| Áp dụng template | Tạo hàng loạt tasks từ template vào dự án |
16. Tìm kiếm & Dữ liệu mẫu
| Tính năng | Mô tả |
|---|---|
| Tìm kiếm toàn cục | Tìm task, project, user cùng lúc |
| Dữ liệu demo | Seed/clear demo — 5 dự án, 30+ task đa ngành nghề |
17. Nhật ký Hoạt động (Activity Log)
| Tính năng | Mô tả |
|---|---|
| Audit trail | Ghi lại mọi thao tác: CREATE, UPDATE, DELETE, ASSIGN, COMPLETE, COMMENT |
| Lọc theo entity | Xem lịch sử thay đổi theo task/project/user |
| Immutable log | Không thể sửa/xóa |
18. Cài đặt Hệ thống
| Tính năng | Mô tả |
|---|---|
| Cấu hình chung | Tên app, default status, deadline warning days |
| Toggle Email/Telegram | Bật/tắt kênh thông báo |
| Telegram Bot config | Bot token, chat ID, test gửi thông báo |
| Database migration | Thêm cột mới không mất data |
| Setup triggers | Tạo trigger tự động chạy deadline reminders |
19. Đa ngôn ngữ (i18n)
| Tính năng | Mô tả |
|---|---|
| i18n support | Hỗ trợ đa ngôn ngữ qua file i18n.html |
20. Tối ưu Hiệu năng
| Tính năng | Mô tả |
|---|---|
| AppCache | In-memory cache với TTL |
| Preload data | Tải tất cả data 1 lần sau login |
| Batch call | Gọi nhiều hàm server 1 lượt |
| Cached lookups | User name map, project name map cached 5 phút |
---
Giao diện (UI Pages)
| File | Chức năng |
|---|---|
| login.html | Trang đăng nhập + setup admin |
| index.html | Layout chính (SPA router) |
| navbar.html | Thanh điều hướng trên |
| sidebar.html | Menu bên trái |
| dashboard.html | Trang tổng quan |
| tasks.html | Danh sách công việc |
| task-modal.html | Modal chi tiết task |
| projects.html | Quản lý dự án |
| kanban.html | Bảng Kanban |
| calendar.html | Lịch công việc |
| gantt.html | Biểu đồ Gantt |
| timesheet.html | Bảng chấm công |
| reports.html | Báo cáo thống kê |
| employees.html | Quản lý nhân viên |
| settings.html | Cài đặt hệ thống |
| i18n.html | Đa ngôn ngữ |
Backend Services (Google Apps Script)
| File | Chức năng |
|---|---|
| Code.gs | Entry point (doGet, doPost, setup, batch operations) |
| Config.gs | Constants, sheet headers, permissions matrix |
| Auth.gs | Authentication, session, user CRUD |
| Database.gs | DAO pattern cho Google Sheets |
| TaskService.gs | Task CRUD, subtasks, comments, files, watchers |
| ProjectService.gs | Project CRUD, dashboard, reports, burndown/velocity |
| NotificationService.gs | In-app, email, Telegram notifications |
| DependencyService.gs | Task dependencies, circular detection |
| TimeTrackingService.gs | Timer, time entries, timesheet |
| RecurringService.gs | Recurring task rules |
| AutomationService.gs | Automation rules, background jobs |
| WorkflowService.gs | Custom Kanban workflow |
| SettingsService.gs | Settings, tags, templates, search, Calendar sync |
| ActivityLog.gs | Audit trail |
| TelegramService.gs | Telegram Bot webhook handler |
| AppCache.gs | In-memory cache utility |

