Giới thiệu dự án
Hải Phòng là trung tâm cảng biển, công nghiệp và đầu mối giao thông huyết mạch của vùng kinh tế trọng điểm phía Bắc, chiếm hơn 35% tổng sản lượng hàng hóa thông qua hệ thống cảng biển toàn miền Bắc. Sự phát triển bùng nổ của chuỗi cung ứng và thương mại điện tử đặt ra áp lực tối ưu hóa quy trình luân chuyển vận tải chặng đầu - cuối (first-mile and last-mile delivery) cũng như chuyển tiếp vận tải bên thứ ba (Third-Party Logistics - 3PL).
Tuy nhiên, khảo sát thực tế tại các doanh nghiệp vận tải vừa và nhỏ (SMEs) trên địa bàn – điển hình như Công ty TNHH Chuyển phát nhanh Sắc Việt (Savie Express, MST: 0200807062) – chỉ ra rằng hoạt động quản trị vận tải phần lớn vẫn mang tính phân tán:
- Việc theo dõi hành trình đơn hàng, phân loại khách hàng và tính cước thực hiện thủ công trên sổ sách hoặc các trang tính rời rạc (Excel, Google Sheets).
- Dữ liệu bị phân mảnh (data silos), gây chậm trễ từ 4 đến 6 giờ trong khâu đối soát bảng kê khai thác bưu cục và kiểm toán doanh thu.
- Tỷ lệ sai lệch phụ phí xăng dầu, chi phí bốc dỡ và sai sót khi quy đổi trọng lượng thể tích đạt mức 5 - 8% tổng giá trị vận đơn.
Đồ án tốt nghiệp "Xây dựng phần mềm quản lý hệ thống doanh nghiệp vận tải tại Hải Phòng" do sinh viên Lê Quang Vũ thực hiện dưới sự hướng dẫn khoa học của TS. Lê Văn Phùng (Viện Công nghệ Thông tin – Viện Hàn lâm Khoa học và Công nghệ Việt Nam) tập trung giải quyết bài toán cốt lõi này bằng việc số hóa toàn diện quy trình nghiệp vụ giao nhận, quản lý giá cước đa tầng và khai thác dữ liệu đơn hàng.
+-------------------------------------------------------------------------------+
| MÔ HÌNH VẬN HÀNH THỰC TẾ SAVIE EXPRESS |
+-------------------------------------------------------------------------------+
| Khách hàng/Nhân viên Sàng lọc & Khai thác Vận chuyển & Giao |
| [Khởi tạo Đơn hàng] ---> [Kho/Bưu cục Savie] -------> [Chặng cuối / 3PL] |
| | | | |
| v v v |
| - Trọng lượng thực - Tính cước tự động - Cập nhật trạng thái |
| - Kích thước 3 chiều - Áp phụ phí xăng dầu - Xử lý chuyển hoàn |
| - Phân loại ngành nghề - Xuất nhãn dán / Bill - Bảng kê cước dịch vụ |
+-------------------------------------------------------------------------------+
Mục tiêu của dự án
- Mục tiêu hệ thống hóa nghiệp vụ: Chuẩn hóa và tự động hóa toàn bộ vòng đời vận đơn từ tiếp nhận, định tuyến kho bãi, liên kết đơn vị vận chuyển thứ ba (3PL), theo dõi lịch sử luân chuyển đến nghiệm thu chuyển hoàn.
- Mục tiêu tính toán và tài chính sơ bộ: Xây dựng thuật toán tính giá cước động kết hợp linh hoạt bảng giá định tuyến, trọng lượng quy đổi kích thước ($D \times R \times C / 5000$) và các danh mục phụ phí biến động (xăng dầu, vùng sâu vùng xa, phí xử lý hồ sơ).
- Mục tiêu kỹ thuật & kiến trúc: Phát triển ứng dụng Web hiệu năng cao trên nền tảng ASP.NET Core kết hợp cơ sở dữ liệu phi quan hệ MongoDB dạng tài liệu (Document-oriented NoSQL), đảm bảo khả năng mở rộng linh hoạt lược đồ (schema-less) và tốc độ phản hồi truy vấn dưới 200ms.
- Mục tiêu nghiệp vụ kiểm toán & đối soát: Tự động tổng hợp bảng kê khai thác hàng ngày tại các trạm/bưu cục và bảng kê cước chi tiết phục vụ đối soát công nợ khách hàng định kỳ.
Phạm vi và giới hạn đề tài
- Phạm vi ứng dụng: Nghiên cứu và triển khai thực nghiệm tại Công ty TNHH Chuyển phát nhanh Sắc Việt (Savie Express) theo mô hình điểm đầu - điểm cuối kết hợp điều phối đối tác vận chuyển chặng giữa.
- Phân hệ bao gồm: Quản lý đơn hàng, Quản lý khách hàng, Quản lý nhân viên & Phân quyền, Quản lý ngành nghề & Phân loại, Quản lý đơn vị cung cấp (3PL), Quản lý phụ phí, Quản lý bảng giá vận chuyển, Quản trị bảng kê khai thác bưu cục và Bảng kê cước dịch vụ.
- Giới hạn đề tài: Hệ thống giới hạn ở nghiệp vụ vận hành kho bãi, bảng kê cước và đối soát giao nhận; phân hệ kế toán chuyên sâu (hạch toán thuế, bảng lương, sổ cái kế toán kép) được tách độc lập để tích hợp qua API trong các giai đoạn phát triển tiếp theo.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Tại các doanh nghiệp logistics quy mô vừa tại Hải Phòng, sự xung đột giữa chi phí phần mềm đắt đỏ và nhu cầu quản trị linh hoạt tạo ra một khoảng trống công nghệ lớn.
| Tiêu chí so sánh |
Quản lý thủ công (Sổ sách/Excel) |
ERP đóng gói (SAP, Odoo, Bravo) |
Hệ thống đề xuất (C# ASP.NET Core + MongoDB) |
| Chi phí đầu tư |
Gần như bằng 0 (chỉ tốn nhân công) |
Rất cao (Hàng trăm triệu - Hàng tỷ VNĐ) |
Tối ưu, tận dụng mã nguồn mở và cloud |
| Tính linh hoạt nghiệp vụ |
Thấp, dễ sai sót dữ liệu khi chia sẻ |
Khó tùy biến theo quy trình 3PL đặc thù |
Cao, thiết kế module hóa đúng nghiệp vụ Savie |
| Thời gian tính toán cước |
3 - 5 phút/đơn (tra bảng thủ công) |
Tự động nhưng cấu hình bảng giá phức tạp |
Tự động tức thì (<1 giây) theo ma trận cước/phụ phí |
| Khả năng mở rộng schema |
Không áp dụng |
Phức tạp (yêu cầu sửa đổi CSDL quan hệ) |
Linh hoạt tuyệt đối với BSON Document của MongoDB |
| Cơ chế kiểm toán dữ liệu |
Ghi đè, không lưu lịch sử chi tiết |
Có ghi vết (Audit trail) |
Tích hợp cơ chế Soft Delete và Logging vết đơn |
Ma trận ưu tiên yêu cầu người dùng (MoSCoW)
- Must-have (Bắt buộc có): Tạo/sửa đơn hàng; Tự động tính cước và áp phụ phí theo tuyến; In nhãn dán đơn hàng và hóa đơn; Quản lý bảng kê khai thác kho; Quản lý bảng kê cước dịch vụ; Xác thực và phân quyền nhân viên.
- Should-have (Nên có): Tự động tính trọng lượng quy đổi thể tích; Lọc nâng cao theo ngành nghề và nhóm khách hàng; Áp dụng cơ chế xóa mềm (Soft Delete) toàn bộ thực thể.
- Could-have (Có thể mở rộng): Xuất file bảng báo giá và cước phí định dạng Excel/PDF; Quản lý danh mục đối tác 3PL chuyên biệt.
- Won't-have (Chưa triển khai kỳ này): Tích hợp thiết bị định vị GPS thời gian thực trên xe; Tự động đối soát cổng thanh toán trực tuyến quốc tế.
Thiết kế hệ thống
Hệ thống được thiết kế theo mô hình kiến trúc phân tầng (Multi-tier Architecture) với sự kết hợp giữa Web Server biên (Reverse Proxy) và Web Server ứng dụng tích hợp (Built-in Kestrel Server).
+----------------------------------------------------------------------------+
| KIẾN TRÚC HỆ THỐNG VẬN HÀNH |
+----------------------------------------------------------------------------+
| [Client Browser] <==== HTTP/HTTPS ====> [Reverse Proxy: IIS / Nginx] |
| | |
| Chuyển tiếp Reverse Proxy |
| v |
| +--------------------------------------------+ |
| | Kestrel Built-in Web Server | |
| +--------------------------------------------+ |
| | ASP.NET Core MVC (Controller/View/Service) | |
| | - Dependency Injection (DI) Container | |
| | - Data Transfer Objects & Routing Engine | |
| | - Session / Cookie State Authentication | |
| +--------------------------------------------+ |
| | |
| MongoDB C# Driver (BSON) |
| v |
| +--------------------------------------------+ |
| | MongoDB Database (Document Collections) | |
| | - Orders, Customers, Employees | |
| | - PriceSheets, Surcharges, Manifests | |
| +--------------------------------------------+ |
+----------------------------------------------------------------------------+
Technology Stack & Versions
- Backend Framework: ASP.NET Core MVC (C# 10 / .NET 6.0 LTS)
- Built-in Web Server: Kestrel Server
- Reverse Proxy: IIS 10.0 / NGINX 1.22
- Database Engine: MongoDB Community Server 6.0
- Database Driver:
MongoDB.Driver v2.18
- Frontend Framework: HTML5, CSS3, JavaScript (ES6), Bootstrap 4.6.2
- Development Tooling: Visual Studio 2022 / JetBrains Rider, MongoDB Compass
Thiết kế cơ sở dữ liệu (Document Collections Design)
Hệ thống chuyển đổi mô hình thực thể liên kết (Entity-Relationship) sang các Collection dạng BSON Document của MongoDB nhằm loại bỏ các phép JOIN tốn tài nguyên, tận dụng tốc độ đọc ghi vượt trội của NoSQL:
- Collection
Employees: Lưu trữ hồ sơ nhân sự, tài khoản hệ thống, phân quyền vai trò.
- Collection
Customers: Lưu trữ định danh khách hàng, công ty, mã phân loại và ngành nghề mục tiêu.
- Collection
PriceSheets: Chứa thông tin biểu giá vận chuyển, cự ly, trọng lượng định mức, thành phố gửi/nhận áp dụng.
- Collection
Surcharges: Chứa quy tắc phụ phí (nhiên liệu, phụ phí vùng sâu, phí chứng từ, mức trần/sàn).
- Collection
Orders: Tài liệu trung tâm lưu trữ toàn bộ thuộc tính đơn hàng, thông số kích thước kiện, lịch sử trạng thái, chi tiết cước và cờ IsDeleted (Soft delete).
- Collection
ExploitationManifests: Bảng kê khai thác tổng hợp hàng hóa xuất/nhập tại các trạm/bưu cục.
- Collection
ServiceBillingManifests: Bảng kê cước chu kỳ, số dư nợ, số tiền thực thu của đối tác.
{
"_id": { "$oid": "640a1b2c3d4e5f6a7b8c9d0e" },
"OrderCode": "SE-HP-20230215-089",
"Sender": {
"CustomerId": "CUST-0012",
"Name": "Công ty TNHH Thép Đình Vũ",
"Phone": "0912345678",
"City": "Hải Phòng"
},
"Receiver": {
"Name": "Nguyễn Văn An",
"Phone": "0987654321",
"Address": "Quận Hoàn Kiếm, Hà Nội",
"City": "Hà Nội"
},
"Packages": [
{ "Length": 30.0, "Width": 20.0, "Height": 15.0, "ActualWeight": 2.5, "VolumetricWeight": 1.8 }
],
"PricingDetails": {
"BaseCost": 45000.0,
"FuelSurcharge": 6750.0,
"DocumentSurcharge": 5000.0,
"TotalCost": 56750.0
},
"CurrentStatus": "InTransit",
"ProviderId": "3PL-VNPOST-01",
"IsDeleted": false,
"CreatedAt": { "$date": "2023-02-15T08:30:00.000Z" }
}
Phương pháp luận phát triển (Methodology)
Dự án áp dụng phương pháp phân tích thiết kế có cấu trúc (Structured Analysis and Design Technique) kết hợp mô hình luồng dữ liệu hai phương diện: Dữ liệu (Data-driven) và Xử lý (Process-driven).
+-------------------------------------------------------------------------------+
| LỘ TRÌNH TRIỂN KHAI DỰ ÁN (MILESTONES) |
+-------------------------------------------------------------------------------+
| Giai đoạn 1 (31/10/2022 - 20/11/2022): Khảo sát nghiệp vụ & Thu thập yêu cầu |
| Giai đoạn 2 (21/11/2022 - 15/12/2022): Thiết kế DFD, Ma trận CRUD & Schema |
| Giai đoạn 3 (16/12/2022 - 20/01/2023): Lập trình C# ASP.NET Core & MongoDB |
| Giai đoạn 4 (21/01/2023 - 10/02/2023): Kiểm thử đơn vị, UAT tại Savie Express |
| Giai đoạn 5 (11/02/2023 - 18/02/2023): Đóng gói, viết tài liệu & Nghiệm thu |
+-------------------------------------------------------------------------------+
Implementation và kết quả
Quá trình phát triển & Kỹ thuật cốt lõi
Toàn bộ logic nghiệp vụ được đóng gói thành các dịch vụ độc lập thông qua cơ chế Dependency Injection (DI) của ASP.NET Core.
1. Thuật toán tính cước vận chuyển động và xử lý trọng lượng quy đổi
Cước vận chuyển được xác định dựa trên giá trị lớn hơn giữa trọng lượng thực tế ($W_{\text{actual}}$) và trọng lượng thể tích ($W_{\text{vol}} = \frac{D \times R \times C}{5000}$), kết hợp bảng giá vùng miền và các khoản phụ phí động.
// Algorithm: Dynamic Shipping Cost & Surcharge Calculation Engine
public class ShippingCostCalculator : IShippingCostCalculator
{
private readonly IMongoCollection<PriceSheet> _priceSheets;
private readonly IMongoCollection<Surcharge> _surcharges;
public ShippingCostCalculator(IMongoDatabase database)
{
_priceSheets = database.GetCollection<PriceSheet>("PriceSheets");
_surcharges = database.GetCollection<Surcharge>("Surcharges");
}
public async Task<PricingResult> CalculateOrderCostAsync(OrderRequest request)
{
// Bước 1: Tính trọng lượng quy đổi thể tích theo tiêu chuẩn IATA/Logistics
double totalActualWeight = 0;
double totalVolumetricWeight = 0;
foreach (var pkg in request.Packages)
{
totalActualWeight += pkg.ActualWeight;
double volWeight = (pkg.Length * pkg.Width * pkg.Height) / 5000.0;
totalVolumetricWeight += volWeight;
}
// Chọn trọng lượng tính cước cao nhất
double chargeableWeight = Math.Max(totalActualWeight, totalVolumetricWeight);
// Bước 2: Tìm bảng giá khớp tuyến đường (Thành phố gửi -> Thành phố nhận)
var priceFilter = Builders<PriceSheet>.Filter.And(
Builders<PriceSheet>.Filter.Eq(p => p.OriginCity, request.OriginCity),
Builders<PriceSheet>.Filter.Eq(p => p.DestinationCity, request.DestinationCity),
Builders<PriceSheet>.Filter.Lte(p => p.MinWeight, chargeableWeight),
Builders<PriceSheet>.Filter.Gte(p => p.MaxWeight, chargeableWeight),
Builders<PriceSheet>.Filter.Eq(p => p.IsDeleted, false)
);
var matchedPriceSheet = await _priceSheets.Find(priceFilter).FirstOrDefaultAsync();
decimal baseCost = matchedPriceSheet != null ? matchedPriceSheet.BaseRate : 30000m;
// Bước 3: Áp dụng phụ phí linh hoạt (Xăng dầu, Vùng sâu vùng xa)
var surchargeFilter = Builders<Surcharge>.Filter.And(
Builders<Surcharge>.Filter.Eq(s => s.AppliedOriginCity, request.OriginCity),
Builders<Surcharge>.Filter.Eq(s => s.IsDeleted, false)
);
var activeSurcharges = await _surcharges.Find(surchargeFilter).ToListAsync();
decimal totalSurcharge = 0m;
foreach (var sc in activeSurcharges)
{
if (sc.CalculationType == CalculationType.Percentage)
totalSurcharge += baseCost * (sc.Rate / 100m);
else
totalSurcharge += sc.FixedAmount;
}
return new PricingResult
{
ChargeableWeight = chargeableWeight,
BaseCost = baseCost,
TotalSurcharge = totalSurcharge,
FinalTotal = baseCost + totalSurcharge
};
}
}
2. Kỹ thuật xóa mềm (Soft Delete Pattern) trên MongoDB
Nhằm đảm bảo tính toàn vẹn dữ liệu cho các phân hệ báo cáo tài chính và bảng kê cước, hệ thống áp dụng kỹ thuật Soft Delete: không bao giờ thực thi lệnh db.collection.deleteOne(), thay vào đó cập nhật cờ IsDeleted = true và tự động áp bộ lọc trên tầng dữ liệu.
// Repository Pattern kết hợp Soft Delete trên MongoDB
public async Task<bool> SoftDeleteOrderAsync(string orderId)
{
var filter = Builders<Order>.Filter.Eq(o => o.Id, orderId);
var update = Builders<Order>.Update
.Set(o => o.IsDeleted, true)
.Set(o => o.UpdatedAt, DateTime.UtcNow);
var result = await _orderCollection.UpdateOneAsync(filter, update);
return result.ModifiedCount > 0;
}
Kiểm thử và đánh giá hiệu năng (Testing & Validation)
Hệ thống đã trải qua quá trình kiểm thử tải (Load Testing) và kiểm thử chấp nhận người dùng (User Acceptance Testing - UAT) tại Công ty Chuyển phát nhanh Sắc Việt.
+-------------------------------------------------------------------------------+
| KẾT QUẢ ĐO LƯỜNG HIỆU NĂNG TẢI (APACHE JMETER) |
+-------------------------------------------------------------------------------+
| Chỉ số đo lường Giá trị đạt được |
| - Số lượng người dùng đồng thời: 150 Virtual Users (VUs) |
| - Tốc độ phản hồi trung bình: 85ms (Thao tác đơn hàng cơ bản) |
| - Tốc độ truy vấn Bảng kê khai thác: 162ms (Aggregation trên 50.000 Docs) |
| - Tỷ lệ lỗi (Error Rate): 0.00% trong 2 giờ chạy liên tục |
| - Mức chiếm dụng tài nguyên Server: RAM < 350MB, CPU < 12% |
+-------------------------------------------------------------------------------+
- Độ bao phủ kiểm thử (Test Coverage): 88% cho toàn bộ các Service Logic cốt lõi.
- Tỷ lệ giải quyết lỗi (Bug Resolution): 24 lỗi phát hiện trong giai đoạn UAT (liên quan đến định dạng hiển thị tiền tệ, căn lề bản in nhãn dán bưu phẩm) được xử lý hoàn tất 100% trước khi nghiệm thu.
So sánh kết quả trước và sau khi triển khai
| Nghiệp vụ vận hành |
Trước khi triển khai (Thủ công) |
Sau khi triển khai (Phần mềm đề tài) |
Tỷ lệ cải thiện |
| Thời gian tạo & in 1 vận đơn |
4 - 6 phút |
20 - 30 giây (có in nhãn mã vạch) |
Rút ngắn 88% |
| Độ chính xác tính giá cước |
92 - 94% (hay nhầm phụ phí) |
99.98% (tự động theo công thức) |
Tăng ~7% |
| Thời gian lập bảng kê khai thác kho |
45 - 60 phút/chuyến |
Xuất tức thì trong 3 giây |
Rút ngắn 98% |
| Thời gian đối soát công nợ khách hàng |
2 - 3 ngày làm việc |
1 click chuột tổng hợp theo tháng |
Tiết kiệm 95% thời gian |
Đổi mới và đóng góp
- Kiến trúc dữ liệu Document NoSQL cho vận tải chặng cuối: Khác với các hệ thống truyền thống dùng CSDL quan hệ (SQL Server, MySQL) đòi hỏi cấu trúc bảng cứng nhắc và dễ tắc nghẽn khi khối lượng đơn hàng tăng đột biến, việc áp dụng MongoDB cho phép lưu trữ trọn vẹn thông tin các gói hàng con (Packages Array) lồng ngay trong tài liệu đơn hàng. Điều này giúp tối ưu hóa $I/O$ đĩa cứng và tăng tốc độ đọc dữ liệu lên gấp 3 lần.
- Cơ chế quản lý bảng giá và phụ phí độc lập: Hệ thống tách bạch hoàn toàn logic biểu giá cơ sở và danh mục phụ phí biến động (xăng dầu, chi phí mùa cao điểm). Doanh nghiệp có thể thiết lập chính sách giá riêng cho từng nhóm đối tác, từng ngành nghề mà không cần can thiệp vào mã nguồn backend.
- Mô hình tích hợp đối tác vận chuyển chặng giữa (3PL-ready): Thiết kế luồng dữ liệu mở cho phép ánh xạ mã vận đơn của các đơn vị thứ ba (VNPost, Viettel Post, DHL...), giải quyết triệt để bài toán kết nối vận chuyển liên tỉnh cho các doanh nghiệp chuyển phát địa phương tại Hải Phòng.
Ứng dụng thực tế và triển khai
Kịch bản vận hành thực tế tại Savie Express
[Khách hàng tạo đơn / Gọi hotline]
│
▼
[Nhân viên tiếp nhận, nhập kích thước 3 chiều & cân nặng]
│
▼
[Hệ thống tự động tính cước, in Bill & Nhãn dán Barcode dán lên bưu phẩm]
│
▼
[Hàng về Kho Savie Hải Phòng -> Đưa vào "Bảng kê khai thác" theo tuyến]
│
▼
[Giao hàng chặng cuối / Chuyển giao đơn vị 3PL kèm mã vận đơn đối tác]
│
▼
[Khách nhận hàng thành công -> Cập nhật trạng thái "Hoàn thành"]
│
▼
[Hệ thống tự động cập nhật "Bảng kê cước dịch vụ" để đối soát thanh toán]
Chiến lược triển khai hệ thống (Deployment Architecture)
- Yêu cầu phần cứng máy chủ (Server Minimum Requirements):
- CPU: 2 Cores (2.0 GHz trở lên)
- RAM: 4 GB DDR4 (khuyến nghị 8 GB khi chạy MongoDB chung server)
- Ổ cứng: 50 GB SSD (NVMe khuyến nghị cho Write-heavy workload)
- Hệ điều hành: Ubuntu Server 20.04 LTS hoặc Windows Server 2019/2022
- Cấu hình Web Server: Ứng dụng ASP.NET Core được chạy nội bộ trên Kestrel (Port
5000/5001), phía trước là NGINX đảm nhiệm vai trò Reverse Proxy, chứng chỉ SSL Let's Encrypt và cân bằng tải tĩnh.
Phân tích hiệu quả kinh tế (ROI)
- Chi phí triển khai: Chi phí phần cứng và hosting ước tính khoảng 800.000 - 1.200.000 VNĐ/tháng.
- Tiết kiệm vận hành: Giảm thiểu 2 nhân sự kiểm toán bảng kê thủ công tại văn phòng, tương đương tiết kiệm khoảng 15.000.000 - 18.000.000 VNĐ/tháng.
- Thời gian hoàn vốn (Payback Period): Dưới 3 tháng sau khi đưa vào vận hành chính thức.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Chưa tích hợp cơ chế cập nhật trạng thái đơn hàng thời gian thực qua giao thức WebSocket/SignalR (hiện đang dùng cơ chế nạp lại theo yêu cầu người dùng).
- Bản in nhãn dán đơn hàng mới hỗ trợ định dạng tiêu chuẩn trình duyệt, chưa tích hợp trực tiếp driver máy in nhiệt bưu chính chuyên dụng (như Xprinter, TSC qua cổng USB/LAN raw data).
- Phân hệ tài chính mới dừng lại ở bảng kê khai thác và cước sử dụng, chưa có hạch toán dòng tiền thu hộ (COD) chi tiết.
Hướng phát triển trong tương lai
- Phát triển ứng dụng di động (Mobile App): Xây dựng app cho tài xế giao nhận (Shipper) bằng Flutter/.NET MAUI tích hợp camera quét mã vạch Barcode/QR Code và ký nhận điện tử (e-Signature).
- Ứng dụng AI/Machine Learning: Dự báo sản lượng hàng hóa giữa các tuyến Hải Phòng - Hà Nội - Sài Gòn để điều phối tải xe và tối ưu hóa tuyến đường giao nhận (Vehicle Routing Problem - VRP).
- Mở rộng RESTful API: Chuẩn hóa hệ thống API để khách hàng doanh nghiệp lớn có thể đẩy đơn trực tiếp từ các sàn TMĐT (Shopee, TikTok Shop, WooCommerce).
Đối tượng hưởng lợi
- Sinh viên & Học viên: Tài liệu tham khảo thực tế về quy trình phân tích thiết kế hệ thống thông tin theo phương pháp cấu trúc, cách áp dụng biểu đồ phân rã chức năng, DFD mức 0, mức 1 và kỹ thuật ánh xạ NoSQL Schema.
- Lập trình viên (Developers): Cung cấp mẫu thiết kế (design pattern) hoàn chỉnh về việc tích hợp ASP.NET Core với MongoDB Driver, triển khai mô hình kiến trúc Kestrel + Reverse Proxy, và kỹ thuật xử lý xóa mềm (Soft Delete).
- Doanh nghiệp vận tải (Logistics SMEs): Bản thiết kế phần mềm hoàn chỉnh, sẵn sàng tùy biến và áp dụng để số hóa hoạt động khai thác kho, kiểm soát phụ phí và đối soát cước minh bạch.
- Nhà nghiên cứu: Cung cấp dữ liệu thực nghiệm về tính khả thi của việc thay thế cơ sở dữ liệu quan hệ truyền thống bằng MongoDB trong các bài toán quản lý chuỗi cung ứng vừa và nhỏ.
Câu hỏi thường gặp
1. Cấu hình máy chủ tối thiểu để triển khai hệ thống là gì?
Hệ thống có thể hoạt động mượt mà trên Cloud VPS cơ bản: 2 vCPU, 4GB RAM, 40GB SSD chạy Ubuntu Linux hoặc Windows Server. Do ASP.NET Core và MongoDB tối ưu tài nguyên rất tốt, hệ thống có thể phục vụ 100 - 200 người dùng nội bộ đồng thời mà không bị nghẽn cổ chai.
2. Tại sao đồ án lại chọn MongoDB thay vì SQL Server truyền thống?
Đơn hàng vận tải có thuộc tính biến động (số lượng kiện hàng, kích thước kiện, lịch sử di chuyển, các loại phụ phí thay đổi theo thời gian). MongoDB với cấu trúc BSON Document lưu trữ dữ liệu dạng cây tự nhiên, không yêu cầu cấu trúc bảng cố định, giúp lưu trữ toàn bộ gói hàng con và phụ phí trong một document duy nhất, tăng tốc độ đọc và dễ dàng mở rộng trường dữ liệu trong tương lai.
3. Hệ thống có khả năng tích hợp với các đơn vị chuyển phát khác (3PL) không?
Có. Hệ thống đã thiết kế sẵn thực thể Provider (Đơn vị cung cấp) và trường ProviderTrackingCode trên từng đơn hàng, cho phép khớp mã đơn của các đơn vị như VNPost, Viettel Post, EMS khi doanh nghiệp chuyển hàng đi các tỉnh vùng sâu hoặc quốc tế.
4. Cơ chế bảo mật và phân quyền của hệ thống hoạt động như thế nào?
Hệ thống sử dụng cơ chế xác thực Session/Cookie được mã hóa của ASP.NET Core, kết hợp phân quyền dựa trên vai trò (Role-Based Access Control - RBAC). Mỗi nhân viên chỉ được thao tác trên các chức năng được quản trị viên cấp phép, kèm theo cơ chế ghi log lịch sử truy cập (Audit Trail) để truy vết lỗi.
5. Dữ liệu khi bị xóa có khôi phục lại được không?
Có. Hệ thống áp dụng 100% nguyên tắc Xóa mềm (Soft Delete). Khi người dùng thực hiện xóa đơn hàng, nhân viên hay bảng giá, hệ thống chỉ cập nhật cờ IsDeleted = true. Dữ liệu vẫn được bảo toàn nguyên vẹn trong cơ sở dữ liệu để phục vụ kiểm toán tài chính và có thể khôi phục lại khi cần thiết.
Kết luận
Đồ án tốt nghiệp "Xây dựng phần mềm quản lý hệ thống doanh nghiệp vận tải tại Hải Phòng" của sinh viên Lê Quang Vũ dưới sự hướng dẫn của TS. Lê Văn Phùng đã giải quyết xuất sắc bài toán số hóa quy trình vận hành logistics cho doanh nghiệp chuyển phát địa phương. Bằng việc kết hợp sức mạnh kiến trúc đa nền tảng của ASP.NET Core cùng tính linh hoạt, hiệu năng cao của MongoDB, hệ thống không chỉ tự động hóa nghiệp vụ tính cước, quản lý đơn hàng và đối soát bảng kê mà còn mở ra một mô hình công nghệ thực tiễn, chi phí thấp cho các doanh nghiệp vận tải đang tìm kiếm giải pháp chuyển đổi số bền vững.