06/2024 – 08/2025, Tiên Phong CDS cho NovaService
- Vai trò
- Project Manager kiêm Backend Leader
- Quy mô team
- 10 người, 20 man-month
- Người dùng
- Hơn 5.000
- Website
- ticket.novadreams.com.vn
Mục tiêu doanh nghiệp
Hệ thống bán vé cho các công viên giải trí NovaDreams (Nova Service Group): đặt vé và combo online, chọn ghế tuyến xe, soát vé bằng QR, đồng bộ đơn với EzTicket.
Hệ thống bán vé cho các công viên giải trí NovaDreams thuộc Nova Service Group. Khách đặt vé, combo và chọn ghế tuyến xe trên web, tài xế soát vé bằng QR, đại lý có cổng riêng, đơn hàng đồng bộ sang EzTicket và SAP của tập đoàn.
Phân hệ chính
- Web đặt vé: công viên, dịch vụ, combo, chọn ghế tuyến xe, giỏ hàng, xuất hoá đơn, vé gửi qua email
- Cổng đại lý
- Quản trị: vai trò Sales, Tài xế, Đại lý, Admin; phương thức thanh toán theo nhóm khách; quản lý chuyến và xe
- Web tài xế soát vé bằng QR
- Đồng bộ đơn với EzTicket, đẩy dữ liệu sang SAP
Phần tôi làm
Một mình quản lý dự án và viết 86% code riêng của hệ thống bán vé 20 module, từ nghiệm thu 07/2024 tới các đợt mở rộng tuyến xe và đồng bộ SAP năm 2025.
- Lập kế hoạch dự án chi tiết: ngân sách, nguồn lực, thời gian biểu và các mốc
- Phân bổ nguồn lực và phối hợp team phát triển, kiểm thử với các bên liên quan
- Nhận diện và quản lý rủi ro về tiến độ, chất lượng và nguồn lực
- Theo dõi tiến độ, báo cáo kết quả lên quản lý cấp cao
- Dẫn mảng backend và vận hành cụm Kubernetes, CI/CD, sao lưu
Kết quả
- 86%code riêng của Novadreams do tôi viết (378 trên 440 commit)
- 5 phân hệ, 20 moduleđặt vé, đại lý, quản trị, soát vé QR, đồng bộ EzTicket và SAP
- 1 đầu mốimột mình quản lý dự án từ kế hoạch tới triển khai, đầu mối duy nhất với khách và đối tác
Vấn đề gặp phải
Hệ thống bán vé phải phục vụ nhiều công viên và nhiều nhóm khách (khách lẻ, đại lý, tài xế) với phương thức thanh toán khác nhau, rồi mở rộng sang tuyến xe và đồng bộ với EzTicket, SAP của tập đoàn. Đây cũng là dự án đầu tiên tôi vừa giữ vai trò kỹ thuật vừa chịu trách nhiệm quản lý, hai việc dễ giẫm chân nhau.
Cách đã giải quyết
- Tách rõ hai vai: lịch và rủi ro báo cáo lên cấp trên, quyết định kỹ thuật giữ trong team.
- Chạy hệ thống trên cụm Kubernetes của CMC Cloud, UAT và PROD tách namespace, MySQL có bản replica.
- Nhận change request theo đợt, mỗi đợt có hạng mục và mốc riêng trong kế hoạch triển khai.
- Nối đơn hàng với EzTicket và đẩy dữ liệu sang SAP của tập đoàn.
Quy trình quản lý dự án
- 1Hợp đồng06/2024
- 2Kế hoạch và rủi roNgân sách, nguồn lực, mốc, sổ rủi ro
- 3Phát triểnWeb đặt vé, quản trị, soát vé QR
- 4Nghiệm thu15/07/2024
- 5Change request05/2025: chính sách, công nợ, giới hạn gói
- 6Mở rộng08/2025: tuyến xe, khoá ghế, đồng bộ SAP
- Hợp đồng 06/2024, nghiệm thu giai đoạn đầu ngày 15/07/2024.
- Năm 2025 chạy theo change request: trang chính sách, thanh toán công nợ, giới hạn gói theo tài khoản (05/2025), rồi API tuyến xe, khoá ghế và đồng bộ đơn với Nova Service Group (08/2025).
- Kế hoạch triển khai chi tiết cho từng hạng mục; UAT và PROD tách namespace trên cùng một cụm Kubernetes.
- Đầu mối duy nhất với khách và đối tác, phụ trách tài liệu API tuyến xe.
Management stack
- Kế hoạch dự án
- Sổ rủi ro
- Change request
Kiến trúc hệ thống
- Người dùng
- Booking web (NextJS)
- Agent portal
- Admin (React + Ant Design)
- Driver QR web
- Dịch vụ
- Lumen API + JWT
- Orders and tickets
- CronJobs
- Dữ liệu
- MySQL 8 + replica
- Redis
- NFS
- Tích hợp
- VNPay
- VietQR
- MB Bank
- EzTicket
- SAP
- Hạ tầng và DevOps
- CMC Cloud Kubernetes
- UAT / PROD namespaces
- Bastion host
Tech stack
- Frontend
- NextJS
- TypeScript
- Tailwind
- React
- Ant Design
- Backend
- PHP Lumen
- JWT
- Dữ liệu
- MySQL 8
- Redis
- Hạ tầng
- CMC Cloud Kubernetes
- NFS
- Bastion host
- Thanh toán và tích hợp
- VNPay
- VietQR
- MB Bank
- EzTicket
- SAP