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 |

