Nguyen Van Quang Huy

Fullstack Developer

0%

EV Router

Bài toán và phạm vi

EV Router là công cụ lập lộ trình xe điện có xét mức pin, mức tiêu thụ, trạm sạc và thời gian sạc. Người dùng nhập điểm đi, điểm đến cùng ưu tiên hành trình; server trả về bản đồ, các tuyến khả thi, điểm dừng sạc, chỉ dẫn và số liệu chi phí.

Ngoài trạm sạc, dữ liệu còn bao gồm bến phà, trạm dừng cao tốc và trạm thu phí. Người dùng có thể yêu cầu tránh một số loại đường hoặc sắp xếp phương án theo thời gian, khoảng cách, chi phí hay số lần sạc.

Cách sản phẩm hoạt động

Server lấy tuyến từ OSRM, chia chặng cho hành trình dài và có Mapbox làm nguồn dự phòng. Mỗi tuyến được kiểm tra bằng trạng thái pin; khi không thể đến trạm tiếp theo, API trả về lý do không khả thi, mức pin thiếu và các gợi ý thay vì chỉ báo lỗi chung.

Kết quả hiển thị trạm sạc gần đường, các lần sạc đã chọn, thời gian di chuyển, thời gian sạc, chi phí điện, phí đường và chỉ dẫn từng chặng bằng tiếng Việt. Tuyến tốt nhất được xác định sau khi sắp xếp theo tiêu chí người dùng đã chọn.

Điểm đáng chú ý

Routing có xét pin và trạm sạc. A* kết hợp dữ liệu tuyến đường, mức pin và trạm sạc để hình thành gợi ý hành trình cho xe điện.

Tìm kiếm không gian nhanh. KD-Tree tổ chức vị trí trạm sạc để truy vấn những điểm gần lộ trình.

Chiến lược dự phòng bản đồ. OSRM cung cấp tuyến chính; Mapbox được dùng khi nguồn định tuyến chính không trả được kết quả phù hợp.

Quyết định kỹ thuật

Flask giữ API và trang bản đồ trong một ứng dụng Python. Folium dựng lớp bản đồ; SciPy cKDTree rút ngắn việc tìm trạm gần tập tọa độ; MongoDB cung cấp dữ liệu trạm sạc, phà, điểm dừng và trạm thu phí.

Thuật toán A* mở rộng trạng thái tuyến bằng phần trăm pin, quãng đường còn lại, thời gian, số điểm sạc và path đã đi. Cache request tuyến giảm số lần gọi lại nguồn bản đồ cho cùng cặp tọa độ và lựa chọn.

Công nghệ sử dụng: Python, Flask, MongoDB, GoongJS, A* Algorithm, KD-Tree.

Ghi chú triển khai

Một endpoint route thực hiện chuỗi bước gồm geocode, lấy nhiều phương án đường, mô phỏng năng lượng, chọn điểm sạc, tìm hạ tầng gần tuyến, dựng bản đồ và trả metrics. Các hàm tính pin, thời gian sạc, chi phí và độ dài đường thực được tách riêng để kiểm tra từng phần.

Dữ liệu bản đồ có thể thiếu hoặc nguồn định tuyến có thể lỗi, nên code giữ các nhánh fallback và kết quả infeasible có cấu trúc. Đây là phần quan trọng của sản phẩm vì một tuyến nhìn hợp lý trên bản đồ vẫn có thể không dùng được với mức pin thực tế.

EV Router product view 1
EV Router product view 2

Hãy cùng tạo nên

những sản phẩm đột phá

và ấn tượng!

Sẵn sàng khởi động dự án cùng bạn ngay hôm nay. Mình nhận các vị trí full-time, thực tập hoặc freelance, làm việc trực tiếp tại TP.HCM hoặc từ xa. Bạn có thể liên hệ nhanh qua số 0906 624 786 (gọi điện hoặc Zalo) hoặc gửi email về nguyen.van.quang.huy.2105@gmail.com.

Nguyen Van Quang Huy - Ready to collaborate