Skip to content
notepower2k1Public

About

TimeLab is an all-in-one developer productivity suite built specifically for software engineers and project teams working on GitLab. Seamlessly track timesheets, calculate monthly KPI performance, audit spent time against estimates, and streamline your daily workflow across both public GitLab.com and self-hosted GitLab instances.

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

TimeLab - GitLab KPI & Timesheet Tracker

Get extension Now!!!!

TimeLab - GitLab KPI, Timesheet & Spent Time Tracker ⏱️📊

Manifest V3 Version Platform Language Privacy License

TimeLab là bộ công cụ toàn diện (All-in-One Productivity Suite) dành cho Software Engineers, Tech Leads và các đội ngũ dự án làm việc trên nền tảng GitLab. Tiện ích giúp tự động hóa quá trình theo dõi tiến độ công việc, kiểm soát thời gian đã bỏ ra (spent time) so với ước lượng (estimate), chấm công hàng ngày (timesheet audit) và tính toán hiệu suất (KPI) trực quan.

Tiện ích tương thích 100% với cả GitLab.com (public) lẫn các máy chủ GitLab Private / On-Premise (tự lưu trữ nội bộ).


📸 Hình ảnh mẫu giao diện (Screenshots)

1. Bảng điều khiển KPI & Danh sách công việc (KPI Dashboard & Popup)

Theo dõi giờ đã log trong kỳ, tỷ lệ hoàn thành đúng hạn và phân loại công việc. Mỗi dòng hiển thị Estimate toàn task, Spent trong kỳ và Spent toàn task; chênh lệch dùng Spent toàn bộ vòng đời trừ Estimate, chỉ hiển thị khi task đã đóng.

KPI Dashboard & Work Items


2. Phân tích tháng & Lưới chấm công (Monthly Analytics & Daily Timesheet Audit)

Dự báo điểm KPI, phân tích biểu đồ trực quan (Chart.js) và lưới lịch 30 ngày giúp phát hiện ngay các ngày thiếu giờ log hoặc chưa ghi nhận công việc.

Monthly Analytics & Timesheet


3. Modal tóm tắt công việc con nhúng trực tiếp trong GitLab (In-Page Sub-Tasks Summary)

Nút bấm thông minh được nhúng thẳng vào giao diện GitLab Issue / Merge Request, mở modal thống kê chi tiết tiến độ các task con và hỗ trợ thêm vào KPI chỉ với 1 click.

GitLab In-Page Modal


🌟 Tính năng nổi bật

1. 📈 Thống kê & Dự báo điểm KPI chuyên sâu

  • Tự động tính toán điểm KPI: Đánh giá dựa trên độ chính xác ước lượng (estimate accuracy), tốc độ hoàn thành (velocity) và tỷ lệ tuân thủ thời gian log giờ (target 8h/ngày).
  • Phân loại công việc đa chiều: Kế hoạch (Planned) vs Phát sinh (Unplanned), Đúng hạn (On-time) vs Trễ hạn (Late), đếm số lần Reopen.
  • Biểu đồ trực quan (Offline Chart.js):
    • Phân bổ giờ đã log theo từng tuần trong tháng.
    • Cơ cấu công việc theo loại (Pie chart: Planned vs Unplanned).
    • Tỉ lệ trạng thái công việc (Doughnut chart: Đúng hạn, Trễ hạn, Đang mở).
  • Xuất báo cáo Excel (.xlsx): Xuất bảng KPI tháng ra file Excel chuẩn định dạng chỉ với 1 cú click (tích hợp offline engine ExcelJS).

2. 📅 Chấm công hàng ngày (Daily Timesheet Audit)

  • Lưới lịch tháng thông minh: Hiển thị tổng giờ làm từng ngày so với chỉ tiêu chuẩn (8 giờ/ngày).
  • Cảnh báo thiếu giờ (Unlogged / Deficit): Tô màu trực quan các ngày log thiếu giờ hoặc quên log.
  • Quản lý ngày nghỉ: Hỗ trợ đánh dấu nghỉ phép nguyên ngày (1 ngày) hoặc nửa ngày (0.5 ngày) để hệ thống tự động điều chỉnh chỉ tiêu giờ và tính điểm KPI chuẩn xác nhất.

3. 🧩 Nhúng thông minh vào giao diện GitLab (In-Page Integration)

  • Tự động thêm nút "KPI Summary" ngay trên thanh tác vụ của trang Issue, Work Item và Merge Request trên GitLab.
  • Hiển thị cây công việc con (child tasks / task items) kèm thống kê tổng quan: Tổng số task, tổng estimate, tổng spent, chênh lệch (difference) và tỉ lệ đúng hạn.
  • Hỗ trợ thêm nhanh từng task hoặc thêm toàn bộ (+ Add All to KPI) vào danh sách theo dõi.

4. 🔄 Tự động đồng bộ task (Automatic Task Sync)

Mỗi Work Item có timelog/lịch sử nằm trong một trang được lấy bằng một query GraphQL gộp. Chỉ gọi thêm khi cần phân trang.

  • Chu kỳ chủ động: Bật/tắt tự động đồng bộ, chọn 5 / 15 / 30 / 60 phút (mặc định 15 phút) trong tab Công cụ của popup.
  • Giờ chạy nền: Thứ Hai–thứ Sáu, theo giờ check-in → check-out đã setting, độc lập với công tắc nhắc chấm công. Task/log ngoài giờ và cuối tuần được lấy bù trong lượt tiếp theo; giữ ngày log thực tế.
  • Sync thường và dữ liệu ban đầu: Chỉ tự tìm Task/Work Item con do người dùng tạo. Lượt đầu tìm task tạo/cập nhật trong tháng và task cũ còn mở; không lấy toàn bộ lịch sử task đã đóng. Các lượt sau tìm task mới/thay đổi từ mốc discovery. Lấy chi tiết mục chưa có dữ liệu, đã thay đổi từ lần đọc trước hoặc có hoạt động hôm nay; task lịch sử không thay đổi giữ cache. Issue cha giữ làm tham chiếu. Metadata kiểm tra theo nhóm project, tối đa 100 ID mỗi nhóm và phân trang đầy đủ.
  • Sync bù: Giữ mốc tìm task và hàng đợi khi trình duyệt đóng, mất mạng hoặc sang ngày/tháng mới. Task tạo tối thứ Sáu hoặc thay đổi cuối tuần được tải chi tiết tự động vào thứ Hai; không cần bấm Re-sync để bù ngày cũ. Task lấy lỗi giữ dữ liệu cũ và được thử lại; task đã bỏ theo dõi không tự thêm lại.
  • Re-sync toàn bộ: Nút trong cài đặt cập nhật tất cả Work Item/MR đã theo dõi, kể cả cuối tuần, ngoài giờ hoặc khi auto-sync đang tắt. UI hiển thị riêng thời điểm sync thường và lần Re-sync toàn bộ.
  • Xuất KPI tháng: Tự Re-sync đầy đủ, tìm thêm task liên quan đến tháng đang chọn rồi mới tạo Excel. Nút hiển thị trạng thái chờ và tránh xuất trùng; nếu sync lỗi/chưa hoàn tất thì không xuất dữ liệu cũ. File Excel là bản báo cáo tại thời điểm xuất, không thêm chức năng khóa báo cáo tháng trong ứng dụng.

5. 🌐 Hỗ trợ GitLab Cloud & Tùy chỉnh máy chủ Self-Hosted

  • Hỗ trợ cả GitLab.com lẫn các domain doanh nghiệp nội bộ (ví dụ: https://gitlab.mycompany.com).
  • Bộ chuyển đổi nhanh (Quick Select Pills) và link tạo Personal Access Token tương ứng cho từng server.
  • Tự động đăng ký Dynamic Content Script (Manifest V3) theo domain máy chủ bạn cấu hình mà không cần sửa code.

6. 📝 Bảng việc Kanban & Sổ tay ghi chú đa năng (Kanban & Notepad)

  • Kanban Board: Quản lý đầu việc hàng ngày qua 4 cột kéo thả (To Do, In Progress, Review, Done).
  • Sticky Notepad: Sổ tay ghi chú đa thẻ (multi-tab) hỗ trợ định dạng Markdown, tự động lưu (auto-save), backup và restore dữ liệu.
  • Chế độ xem linh hoạt: Mở được trong popup, mở toàn màn hình (Full Tab) hoặc chạy dưới dạng cửa sổ độc lập (Desktop Window).

7. 🔔 Nhắc nhở Check-in / Check-out & Daily Report

  • Báo thức thông minh nhắc nhở giờ điểm danh buổi sáng và chấm công buổi chiều từ Thứ 2 đến Thứ 6.
  • Liên kết nhanh đến cổng chấm công của công ty.
  • Daily Task Generator: Tự động tổng hợp danh sách các công việc đã làm trong ngày để gửi báo cáo daily meeting/chat group (tự động copy vào clipboard).

8. 🌐 Đa ngôn ngữ (Multilingual VI / EN)

  • Hỗ trợ song ngữ hoàn chỉnh Tiếng Việt 🇻🇳 và English 🇬🇧.
  • Chuyển đổi ngôn ngữ 1-click tức thì, đồng bộ xuyên suốt từ Popup, Dashboard, Kanban, Note đến Modal nhúng trong trang GitLab.

🔒 Cam kết Bảo mật & Quyền riêng tư (Privacy-First)

  • 100% Local-First: Toàn bộ dữ liệu, Access Token cá nhân, ghi chú và danh sách công việc đều được lưu trữ trực tiếp trên trình duyệt máy bạn (chrome.storage.local).
  • Zero Telemetry: Extension hoàn toàn không gắn mã theo dõi, không thu thập thông tin người dùng và không có server bên thứ ba.
  • Kết nối trực tiếp: Mọi kết nối API được thực hiện trực tiếp giữa trình duyệt của bạn và máy chủ GitLab thông qua token của bạn.
  • Tuân thủ Manifest V3 CSP: Tuyệt đối không nạp mã từ xa (no remote scripts), các thư viện (Chart.js, ExcelJS) đều được đóng gói offline bên trong extension.
  • Chính sách chi tiết: Đọc toàn bộ văn bản Chính sách quyền riêng tư (Privacy Policy).

📥 Hướng dẫn cài đặt

Cách 1: Cài đặt từ mã nguồn (Developer Mode)

  1. Tải repository này về máy tính (hoặc sử dụng git clone).
  2. Mở trình duyệt Chrome (hoặc Edge, Brave, Cốc Cốc, Opera).
  3. Truy cập địa chỉ chrome://extensions/ trên thanh địa chỉ.
  4. Bật công tắc Developer mode (Chế độ dành cho nhà phát triển) ở góc trên bên phải.
  5. Nhấn nút Load unpacked (Tải tiện ích đã giải nén).
  6. Chọn thư mục dự án KPIGitlabExtension.

Cách 2: Cài đặt từ gói Release Zip

  1. Tải file timelab-extension-v1.0.9.zip từ thư mục release/.
  2. Giải nén file zip vào một thư mục cố định trên máy.
  3. Mở chrome://extensions/ -> bật Developer mode -> chọn Load unpacked đến thư mục vừa giải nén.

🚀 Hướng dẫn cấu hình & bắt đầu sử dụng

  1. Đăng nhập & Cấu hình máy chủ:

    • Nhấn vào biểu tượng icon extension trên thanh công cụ trình duyệt.
    • Nhập hoặc chọn URL máy chủ GitLab của bạn (mặc định https://gitlab.com hoặc domain công ty).
    • Nhấn vào liên kết "Lấy Token tại đây" để mở nhanh trang tạo Personal Access Token trên GitLab (cần cấp quyền api hoặc read_api).
    • Dán token vào ô và nhấn Đăng nhập.
  2. Thiết lập đồng bộ:

    • Trong tab Công cụ, chọn chu kỳ tự động đồng bộ và lưu giờ check-in / check-out.
    • Task/Work Item con tạo/cập nhật trong tháng và task cũ còn mở được tìm tự động ở lượt đầu; task/MR đã theo dõi tiếp tục được cập nhật.
    • Dùng Add to KPI hoặc KPI Summary trên GitLab để theo dõi thêm công việc khác. Chọn Re-sync toàn bộ khi cần đối chiếu dữ liệu; xuất Excel tháng sẽ tự chạy Re-sync trước.
  3. Xem Dashboard & Báo cáo:

    • Nhấn Open Dashboard từ popup để mở giao diện phân tích toàn diện.
    • Chọn tháng để xem KPI; dùng bộ lọc tuần/ngày khi cần xem chi tiết công việc.
    • Xem lưới chấm công Timesheet, kiểm tra biểu đồ và tải file Excel báo cáo khi cần.

🛠 Cấu trúc mã nguồn

KPIGitlabExtension/
├── manifest.json              # Cấu hình Chrome Extension (Manifest V3)
├── background.js              # Service Worker: Lập lịch sync, thông báo, dynamic content scripts
├── sync.js                    # GitLab API, sync bù, điều phối dữ liệu và setting sync
├── utils.js                   # Tiện ích dùng chung: Chuẩn hóa URL, ngày giờ, storage, filter KPI
├── i18n.js                    # Động cơ đa ngôn ngữ & từ điển song ngữ VI / EN
├── content_issue.js           # Content Script nhúng nút & modal KPI vào trang Issue / Work Item
├── content_request.js         # Content Script hỗ trợ trang Merge Request
├── icon16.png, icon32.png...  # Bộ biểu tượng ứng dụng
├── popup/                     # Giao diện Popup Extension
│   ├── popup.html
│   ├── popup.css
│   └── popup.js
├── page/                      # Giao diện Dashboard chính (Báo cáo & Phân tích)
│   ├── page.html
│   ├── page.css
│   ├── page.js
│   ├── chart.umd.min.js       # Thư viện vẽ biểu đồ offline (Chart.js)
│   ├── exceljs.min.js         # Thư viện xuất Excel offline (ExcelJS)
│   └── kpi_template.xlsx      # Template mẫu xuất KPI
├── todo/                      # Phân hệ bảng việc Kanban To-Do Board
├── note/                      # Phân hệ sổ tay ghi chú Sticky Notepad
├── docs/                      # Tài liệu dự án & Hướng dẫn nộp Chrome Web Store
│   ├── store-assets/          # Ảnh chụp màn hình chuẩn 1280x800 phục vụ deploy
│   └── CHROME_STORE_SUBMISSION.md
└── release/                   # Gói đóng gói sản phẩm (.zip) sẵn sàng upload Store

🧪 Kiểm thử & Đóng gói (Testing & Packaging)

Dự án sở hữu pipeline kiểm thử hồi quy tự động toàn diện:

# Chạy toàn bộ 13 test suites và kiểm tra 25 chỉ tiêu bảo mật / cú pháp:
node scratch/test_full_suite.js

# Smoke test trên Chrome thật, profile tạm và GitLab API giả lập (Node 22+, Chrome CDP Extensions):
node scratch/test_browser_sync.js

# Đóng gói tự động bản build sản phẩm sạch cho Chrome Web Store:
node scratch/build_release_zip.js


TimeLab được phát triển nhằm tối ưu hóa hiệu suất làm việc, tính minh bạch và sự tiện lợi tối đa cho kỹ sư phần mềm khi làm việc với hệ sinh thái GitLab.

About

TimeLab is an all-in-one developer productivity suite built specifically for software engineers and project teams working on GitLab. Seamlessly track timesheets, calculate monthly KPI performance, audit spent time against estimates, and streamline your daily workflow across both public GitLab.com and self-hosted GitLab instances.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages