Giới Thiệu
Mỗi thứ Sáu, tôi thường mất thời gian để nhớ lại những gì mình đã làm trong tuần. Hệ thống ERP của công ty khiến việc ghi chép thời gian trở thành một công việc không công — với các mẫu chậm chạp, giao diện khó sử dụng và quá nhiều thao tác. Khi còn làm freelancer bán thời gian, việc ghi chép bằng bút và giấy còn nhanh hơn nhiều so với ERP. Chỉ cần ghi lại:
09:00 Dự án A
10:30 Họp
11:00 Dự án B
Đơn giản. Nhưng khi trở thành một tư vấn viên toàn thời gian, danh sách vào cuối tuần trở nên dài dằng dặc. Việc chuyển đổi lại thành thông tin cho ERP trở thành một quá trình đau đầu. Đó là lúc tôi nghĩ: Tôi nên tự động hóa điều này.
Những Gì Tôi Mong Muốn
- Ghi lại thời gian một cách ngay lập tức. Hệ thống nên tự động ghi lại thời gian bắt đầu và tính toán thời gian đã làm.
- Báo cáo phải dễ dàng. Nhóm các mục theo nhiệm vụ, gửi chúng đến ERP qua API và không bao giờ phải mở giao diện của ERP nữa.
Tôi đã xem xét Excel, nhưng nó không thể cung cấp cho tôi sự tự động hóa thực sự. Tôi đã kiểm tra một số công cụ hiện có, nhưng chúng cảm thấy nặng nề và không khớp với cách ghi chép của tôi:
- Kết thúc một nhiệm vụ bằng cách đơn giản bắt đầu nhiệm vụ tiếp theo.
- Tự động tính toán thời gian của nhiệm vụ trước đó.
Vì vậy, tôi đã quyết định xây dựng một ứng dụng web.
Phiên Bản 1: Đã Cải Thiện Đáng Kể
- Thêm mục chỉ bằng một nút bấm hoặc phím tắt.
- Ngày/giờ tự động điền.
- Thời gian của nhiệm vụ trước đó tự động tính toán.
- Chọn nhiều mục → xem tổng thời gian ngay lập tức.
Tôi chỉ cần lấy tổng số đó và đánh nó vào ERP. Thật là một chiến thắng về năng suất.
Công nghệ vẫn rất đơn giản: không cần backend.
- Frontend được triển khai trên Cloudflare Pages
- Dữ liệu được lưu trữ trong localStorage của trình duyệt
- Không cần đăng ký, không cần email, không cần tài khoản. Chỉ cần mở trang và ghi lại.
Tích Hợp với ERP
Tất nhiên, tôi muốn nhiều hơn thế. Công ty tôi sử dụng Odoo, và tôi muốn gửi nhật ký thời gian trực tiếp đến đó vào cuối mỗi ngày, chỉ với một cú nhấp chuột. Điều đó có nghĩa là:
- Lấy dự án và nhiệm vụ từ Odoo qua API
- Liên kết các mục trong ứng dụng của tôi
- Đưa chúng trở lại Odoo hàng loạt vào cuối ngày, với các tùy chọn làm tròn thời gian đã sử dụng (tối thiểu 15 phút)
Sau đó, vấn đề quen thuộc xuất hiện: CORS issues.
Frontend → backend Odoo? Không thể.
Tôi đã thử sử dụng một tiện ích mở rộng của Chrome và nó hoạt động, nhưng không thực sự tiện lợi.
Giải pháp: Cloudflare Workers. Chúng xử lý proxy một cách gọn gàng, và đột nhiên tôi có một sự tích hợp hoạt động.
Công Nghệ Hiện Tại (Cho Những Ai Thích Tò Mò)
- Frontend: StencilJS (web components)
- Hosting: Cloudflare Pages
- Lưu trữ: LocalStorage của trình duyệt
- Tích hợp ERP: API Odoo (Dự án & Nhiệm vụ)
- Proxy / Giải Quyết Vấn Đề CORS: Cloudflare Workers
Nhẹ nhàng, không cần máy chủ và rẻ để vận hành.
Những Cải Tiến Nhỏ Về UX
Theo thời gian, tôi liên tục cải thiện những điều nhỏ nhặt:
- Thêm một nút “Nghỉ” (thay vì phải gõ mỗi lần) → ghi lại thời gian không làm việc.
- Làm đẹp thiết kế, làm cho nó responsive.
- Phím tắt cho các hành động phổ biến.
Tôi đã không nghĩ rằng di động quan trọng ở đầu, nhưng đôi lần tôi muốn kiểm tra/chỉnh sửa trong lúc đi lại. Vì dữ liệu sống trong local storage, nó không thực sự hữu ích. Có thể đồng bộ hóa giữa các thiết bị sẽ đến sau... Điều đó sẽ đòi hỏi một backend, một cơ sở dữ liệu, xác thực, v.v.
Kế Hoạch Tương Lai
- Tích hợp với Teamwork (vì đó là thứ tôi đang sử dụng bây giờ).
- Có thể điền tự động vào lịch để tự tạo một số mục.
- Xuất CSV / Excel.
- Tích hợp với Zapier/Make hooks.
- Đồng bộ hóa giữa các thiết bị nếu người dùng yêu cầu.
- Và tại sao không để một lúc nào đó có một LLM cải thiện mô tả của nhật ký thời gian? 😅
Nhưng cốt lõi sẽ vẫn như vậy: đơn giản, nhanh chóng, không cần đăng ký, không thu thập dữ liệu.
Bạn Muốn Thử?
Nếu bạn là một freelancer, tư vấn viên hoặc lập trình viên ghét ghi chép thời gian, có lẽ ứng dụng của tôi có thể giúp bạn:
👉 timesheetr.app
Tôi rất mong nhận được phản hồi — đặc biệt từ những lập trình viên hiểu rõ nỗi đau này và muốn làm cho nó nhanh hơn.