Railway Reservation & Management System là Web App học kỳ 3 của nhóm sinh viên FPT Aptech gồm Triệu Phong, Nhật Thành, Anh Tuấn và Khánh Danh, hướng đến số hóa quy trình đặt vé và quản lý đường sắt từ tìm chuyến, chọn chỗ đến thanh toán và quản lý hành trình.
Xuất phát từ bài toán đặt vé đường sắt thực tế
Thay vì chỉ xây dựng một website với các chức năng riêng lẻ, nhóm sinh viên lựa chọn Railway Reservation & Management System từ bài toán cải tiến quy trình mua và quản lý vé tàu.
Việc xử lý thủ công hoặc phụ thuộc nhiều vào quầy vé có thể tạo ra bất tiện cho hành khách, đồng thời đặt ra yêu cầu về quản lý lịch trình, chỗ ngồi và thông tin đặt vé.
Từ đó, nhóm xây dựng một nền tảng tập trung, cho phép khách hàng:
- Tìm chuyến theo ga đi, ga đến và ngày khởi hành.
- Kiểm tra tình trạng ghế.
- Chọn chỗ ngồi.
- Nhập thông tin hành khách.
- Đặt vé và theo dõi vé.
- Quản lý lịch sử đặt vé.
Bên cạnh phía khách hàng, hệ thống còn có chức năng hỗ trợ Staff kiểm tra vé và khu vực quản trị dành cho Administrator.

Từ phân tích nghiệp vụ đến hệ thống đặt vé trực tuyến
Quá trình phát triển Railway Reservation & Management System bắt đầu từ việc phân tích yêu cầu và xác định ba nhóm người dùng chính gồm Customer, Staff và Administrator.
Sau đó, nhóm triển khai các bước phân tích và thiết kế như Use Case, Sequence Diagram, Data Flow Diagram, mô hình cơ sở dữ liệu và giao diện trước khi phát triển các chức năng chính.
Đáng chú ý, cơ sở dữ liệu được xây dựng theo mô hình quan hệ, bao quát nhiều thành phần của một hệ thống đường sắt như ga tàu, tuyến đường, đoàn tàu, toa tàu, ghế, lịch chạy, giá vé, đặt chỗ, thanh toán và hoàn tiền.
Cách tiếp cận này giúp nhóm hình dung rõ hơn mối liên hệ giữa các thành phần và cách dữ liệu được luân chuyển trong toàn bộ quy trình đặt vé.

Bài toán kỹ thuật: Làm thế nào để một ghế không bị đặt hai lần?
Với một hệ thống đặt vé, tính chính xác và nhất quán của dữ liệu là một trong những yêu cầu quan trọng. Khi nhiều khách hàng cùng lựa chọn một ghế trên cùng chuyến tàu, hệ thống phải đảm bảo ghế đó không thể được bán cho hai người.
Để giải quyết vấn đề này, nhóm triển khai cơ chế giữ ghế tạm thời – seat lock.
Khi khách hàng chọn ghế, hệ thống sẽ tạm thời giữ vị trí đó trong một khoảng thời gian để người dùng hoàn tất quá trình đặt vé. Đồng thời, các bước tạo booking, thanh toán và cập nhật trạng thái ghế được thiết kế theo nguyên tắc giao dịch đồng bộ: hoặc toàn bộ quy trình thành công, hoặc được hoàn tác khi phát sinh lỗi.
Đây là một trong những điểm cho thấy nhóm không chỉ tập trung vào giao diện mà còn phải xử lý các bài toán về logic nghiệp vụ và tính nhất quán dữ liệu khi xây dựng một hệ thống thực tế.
Railway Reservation & Management System có gì nổi bật?
Railway Reservation & Management System được phát triển theo hướng mô phỏng tương đối đầy đủ quy trình nghiệp vụ của một nền tảng đặt vé đường sắt.
Hệ thống hỗ trợ người dùng tìm chuyến, xem sơ đồ ghế trực quan, đặt nhiều vé, sinh mã PNR và mã vé riêng, quản lý lịch sử đặt vé. Phía Staff có thể thực hiện kiểm tra vé khi hành khách lên tàu.
Trong khi đó, khu vực Administrator cung cấp dashboard cùng các chức năng quản lý người dùng, ga tàu, tuyến đường, lịch chạy, đoàn tàu, giá vé và đơn đặt vé.
Các giao diện và chức năng này được nhóm thiết kế, phát triển và hoàn thiện trong quá trình Review 3.

Một đồ án, nhiều bài học về phát triển phần mềm
Thông qua Railway Reservation & Management System, các thành viên có cơ hội củng cố kiến thức lập trình web đồng thời tiếp cận nhiều công việc phía sau một sản phẩm phần mềm hoàn chỉnh.
Từ phân tích yêu cầu, thiết kế cơ sở dữ liệu, tổ chức luồng nghiệp vụ, quản lý tính nhất quán dữ liệu đến phối hợp các module, mỗi bước đều đòi hỏi nhóm phải thống nhất cách triển khai và giải quyết vấn đề cùng nhau.
Quan trọng hơn, dự án giúp sinh viên nhận ra rằng một sản phẩm phần mềm không chỉ cần “chạy được”, mà còn phải giải quyết đúng nhu cầu người dùng, xây dựng quy trình hợp lý và có khả năng xử lý những tình huống phát sinh trong thực tế.
Nhận xét từ giảng viên hướng dẫn
Theo thầy Đức Quang, nhóm đã lựa chọn một bài toán có tính thực tế và triển khai tương đối đầy đủ từ phân tích nghiệp vụ, thiết kế dữ liệu đến giao diện và các chức năng cốt lõi.
Đặc biệt, nhóm chú trọng những vấn đề quan trọng của hệ thống đặt vé như quản lý trạng thái ghế, tính nhất quán dữ liệu và phân quyền người dùng. Đây cũng là những yếu tố góp phần thể hiện khả năng phối hợp nhóm và vận dụng kiến thức học kỳ vào việc xây dựng một hệ thống hoàn chỉnh.
Học qua dự án, phát triển sản phẩm từ bài toán thực tế
Railway Reservation & Management System là một ví dụ cho cách sinh viên FPT Aptech vận dụng kiến thức đã học để tiếp cận một bài toán có nhiều thành phần nghiệp vụ và kỹ thuật.
Từ một nhu cầu quen thuộc là đặt vé tàu, nhóm đã từng bước phân tích yêu cầu, thiết kế hệ thống, xây dựng các chức năng và xử lý những vấn đề kỹ thuật phát sinh trong quá trình phát triển.
Qua mỗi đồ án, sinh viên có thêm cơ hội rèn luyện tư duy phát triển sản phẩm, kỹ năng làm việc nhóm và khả năng chuyển hóa kiến thức lập trình thành một sản phẩm web có cấu trúc và quy trình vận hành cụ thể.
Giảng viên Hoàng Đức Quang
| FPT Aptech trực thuộc Tổ chức Giáo dục FPT có hơn 25 năm kinh nghiệm đào tạo lập trình viên quốc tế tại Việt Nam, và luôn là sự lựa chọn ưu tiên của các sinh viên và nhà tuyển dụng. |


