Demo lịch bảo dưỡng đội xe

Một đội 18 xe trong đó mọi hạng mục bảo dưỡng đến hạn theo số km, theo ngày, hoặc theo cái nào tới trước. Bảo dưỡng và điều xe dùng chung một danh bạ phương tiện, nên một chiếc xe đang trong xưởng là chiếc xe mà bên điều xe không đặt được.

Mở bản demo

Mở fleet.taiphamsolutions.com trong tab mới. Không cần tài khoản, không cần đăng ký, và mọi thao tác của bạn đều không rời khỏi trình duyệt. Ứng dụng demo chỉ có bản tiếng Anh.

Bản demo này làm gì

Hồ sơ vận hành nhận được tổng quan đội xe, bộ lọc trạng thái, tìm kiếm, một hàng đợi bảo dưỡng có ưu tiên, và trang chi tiết xe kèm số km hiện tại. Hồ sơ quản trị nhận được việc tạo và sửa phương tiện, sửa chu kỳ kèm bản xem trước những gì sẽ thay đổi, lưu trữ và khôi phục, thiết lập cảnh báo, và lịch sử hoạt động.

Quy tắc mà cả ứng dụng xoay quanh là khi nào một hạng mục đến hạn. Một mốc ngày hoặc một mốc số km chạm giới hạn làm hạng mục đến hạn, và vượt qua một trong hai làm nó quá hạn. Xác nhận một cảnh báo không đặt lại thứ gì cả, và đặt một lịch hẹn cũng vậy. Chỉ một lần bảo dưỡng đã hoàn thành mới dời được mốc tính, và đó chính là điểm phân biệt giữ cho hồ sơ bảo dưỡng khỏi biến thành mong ước.

Điều xe nằm ngay bên cạnh chứ không ở một thế giới riêng. Lịch đặt chuyến, phân công lại và các lệnh giữ xe đều đọc trên cùng một danh bạ phương tiện, nên xung đột với lịch bảo dưỡng hiện ra ngay tại lúc đặt, và việc chặn xe quá hạn là một tùy chọn cấu hình chứ không phải một giả định.

Đẩy đồng hồ km của một xe vượt qua giới hạn của một hạng mục, xem nó chuyển từ đến hạn sang quá hạn trong hàng đợi, rồi thử đặt nó cho một chuyến đi.

Tính năng

18 phương tiện, 72 hạng mục bảo dưỡng được phân công, các lịch hẹn, lịch đặt chuyến và lịch sử bảo dưỡng, được tạo sẵn ngay lần chạy đầu tiên.

Tổng quan đội xe và hàng đợi

Bộ lọc trạng thái, tìm kiếm, và một hàng đợi bảo dưỡng sắp theo mức độ quá hạn thực tế chứ không theo thứ tự nhập vào.

Chu kỳ có ý nghĩa thật

Theo số km, theo ngày hoặc theo tháng, hoặc theo điều kiện kết hợp, với tính toán đến hạn cho từng hạng mục và một bản xem trước khi kế hoạch được chỉnh.

Xếp lịch xưởng

Đặt lịch, chọn xưởng, dời lịch, bắt đầu, hủy, hoặc hoàn thành một phần, với lịch sử bảo dưỡng và các cập nhật theo giao dịch phía sau mỗi bước.

Điều xe trên cùng danh bạ

Lịch đặt chuyến, phân công lại, lệnh giữ xe, xung đột bảo dưỡng, và khả năng cấu hình việc chặn các xe quá hạn.

Quy trình khép kín, từ đầu đến cuối

Mọi bước dưới đây đều diễn ra bên trong bản demo. Không có điểm nào mà công việc rời khỏi trình duyệt rồi quay lại.

  1. Một số liệu được nhập vào

    Số km hiện tại được cập nhật trên xe, và đó là thứ duy nhất đẩy một hạng mục tính theo km tiến về phía giới hạn của nó.

  2. Hạng mục chuyển sang đến hạn, rồi quá hạn

    Chạm một mốc ngày hoặc một mốc số km làm nó đến hạn. Vượt qua một trong hai làm nó quá hạn, và hàng đợi sắp xếp lại quanh nó.

  3. Cảnh báo được dựng lên và được xác nhận

    Việc xác nhận được ghi lại vào cảnh báo và không thay đổi gì về mốc tính bảo dưỡng, và đó chính là điểm mấu chốt.

  4. Nó được xếp lịch tại một xưởng

    Đặt, dời hoặc hủy. Lịch hẹn là một kế hoạch chứ không phải một lần hoàn thành, nên hạng mục vẫn quá hạn cho tới khi công việc xong thật.

  5. Bảo dưỡng hoàn thành, toàn bộ hoặc một phần

    Việc hoàn thành ghi vào lịch sử và tính lại mốc đến hạn kế tiếp từ số liệu tại thời điểm bảo dưỡng.

  6. Bên điều xe thấy hệ quả

    Trong lúc xe bị giữ hoặc bị chặn, một lệnh đặt chuyến cho nó sẽ báo xung đột ngay tại thời điểm có người thử đặt.

Cái gì là thật, cái gì thì không

Không có máy chủ nào phía sau, và chính điều đó quyết định cả hai cột. Cột trái là những phần mà ràng buộc ấy khiến chúng đáng được làm cho tử tế. Cột phải là những phần nó loại trừ.

Được xử lý thật

  • Đến hạn và quá hạn được tính đúng ở các mốc cuối tháng, qua nhiều múi giờ, và trên dữ liệu không đầy đủ
  • Tính toàn vẹn khi một lần bảo dưỡng mới chỉ hoàn thành một phần
  • Hai tab cùng sửa một xe, kiểm tra theo số hiệu bản ghi thay vì để lần ghi cuối thắng
  • Tiếng Anh và tiếng Việt trên cả phần vận hành lẫn phần quản trị

Cố ý không làm thật

  • Các hồ sơ chỉ minh họa hành vi theo vai trò. Chúng không phải là xác thực an toàn
  • Không có thông báo nền và không có dịch vụ đồng bộ. Không có gì chạy khi tab đã đóng
  • Đồng hồ thiết bị là nguồn thời gian, nên một chiếc đồng hồ sai sẽ tạo ra những hạn chót sai
  • Mỗi hồ sơ trình duyệt và mỗi tên miền giữ dữ liệu riêng. Muốn chuyển đi thì phải xuất một bản sao lưu

Được xây dựng thế nào

Phần mô tả này thuyết phục hơn cả bản thân ứng dụng, nên nó nằm ngay trên trang thay vì trong một kho mã không ai mở được.

Công nghệ
Preact, Signals, TypeScript, Vite, và IndexedDB thông qua idb. Không có máy chủ ứng dụng, không có cơ sở dữ liệu từ xa, không có tài nguyên nào tải về lúc chạy từ nơi khác.
Ngân sách
Bản build báo cáo kích thước raw, gzip và Brotli, và sẽ thất bại nếu vượt ngân sách phát hành 1 MiB raw và 250 KiB gzip.
Đồng thời
Dữ liệu được nạp kèm số hiệu bản ghi của cơ sở dữ liệu. Một biểu mẫu đang mở giữ số hiệu lúc nó được mở và đề nghị tải lại khi một tab khác đã đi tiếp, nên một lần ghi từ dữ liệu cũ bị từ chối thay vì được áp dụng.
Kiểm thử
Unit test và integration test trên các mốc biên của chu kỳ, cuối tháng, ngày theo múi giờ, dữ liệu không đầy đủ, tính toàn vẹn khi hoàn thành, hạn chế bên điều xe, kiểm tra bản sao lưu và các lần sửa đồng thời, cộng thêm test trên trình duyệt cho việc hoàn thành, tạo bản ghi ở phần quản trị, cả hai ngôn ngữ, sao lưu và bố cục di động.

Bản demo này là bằng chứng cho dịch vụ nào

Một bản demo tồn tại để chứng minh điều gì đó trong danh sách dịch vụ, chứ không phải để tự nó gây ấn tượng. Đây là những dịch vụ mà bản demo này chứng minh.

Các bản demo khác

Mỗi bản là một loại bài toán khác nhau, và tất cả đều nằm trong menu Bản demo ở đầu trang.

Muốn một bản như thế này nhưng chạy theo quy tắc của bạn?

Bản này được làm dưới một ràng buộc mà không ai tự chọn. Bản của bạn sẽ có máy chủ, tài khoản thật, và cả những phần thực sự khó trong nghiệp vụ. Hãy cho chúng tôi biết phần mềm cần làm được gì, chúng tôi sẽ nói cần những gì để làm ra nó.

Cứ mang tới bài toán còn ngổn ngang. Đó là kiểu trao đổi chúng tôi thích nhất.