Thời gian gần đây, công ty tôi đang làm việc có chuyển văn phòng. Thật tình cơ là nó rất gần với ga tàu metro. Vì thế, tôi quyết định đi thử tàu điện đi làm thay vì hàng ngày đi xe máy như trước đây.
Ngay buổi đầu tiên, tôi đã cảm thấy wow, nó thật tiện lợi và trải nghiệm quá tốt so với các phương tiện công cộng trước đây tôi xử dụng. Không tắc đường, không đông đúc, không chật chội và phải chờ đợi quá lâu như xe buýt. Đây thật sự là một phương tiện tuyệt vời giúp hành trình đi làm của tôi diễn qua suôn sẻ và thoải mái hơn rất nhiều.
Tuy nhiên, sau vài ngày trải nghiệm, tôi nhận ra một vấn đề nhỏ nhưng khá bất tiện: nếu đến ga không đúng giờ tàu chạy, thời gian di chuyển của tôi có thể bị kéo dài thêm đến 20 phút. Mỗi lần lỡ chuyến, tôi phải đợi ít nhất 6 phút tới 10 phút cho chuyến tiếp theo. Tính ra, chỉ trong một tuần, tôi có thể mất đến 50 phút chỉ để đứng chờ—một con số không hề nhỏ! Chẳng hạn, nếu sáng tôi đến muộn 10 phút, chiều cũng phải về trễ tương ứng, khiến lịch trình bị xáo trộn và đôi khi làm tôi thấy mệt mỏi. Thậm chí, có lúc tổng thời gian đi metro còn vượt cả khi tôi đi xe máy.
Điều thú vị là tàu metro luôn đến ga đúng giờ một cách đáng kinh ngạc. Qua vài ngày quan sát, tôi thấy thời gian tàu đến không bao giờ lệch quá 30 giây so với lịch trình. So với xe buýt—nơi mà trễ giờ là chuyện thường xuyên—đây là một điểm khác biệt lớn. Tôi còn nhớ những lần đi xe buýt, đặc biệt là chuyến cuối vào buổi tối, phải chạy theo xe trong tâm trạng hồi hộp chỉ mong không bị bỏ lại. Ngược lại, sự chính xác của metro mang đến cảm giác tin cậy và yên tâm tuyệt vời.
Dẫu vậy, đôi khi tôi cần về sớm nhưng lại không biết chính xác giờ tàu đến. Có lần, tôi vội vã chạy lên ga, vừa đến nơi thì cửa tàu đóng lại và tàu lướt đi ngay trước mắt. Cảm giác hụt hẫng lúc đó thật khó tả! Tôi nhận ra một điều: không có nguồn thông tin nào cung cấp chi tiết giờ khởi hành của từng chuyến tàu tại từng ga. Mọi thứ chỉ dừng ở những thông tin chung như giờ hoạt động hay thời gian di chuyển trung bình. Từ đây, một ý tưởng chợt lóe lên: nếu metro đã đúng giờ đến vậy, tại sao không tạo một website để theo dõi lịch trình tàu? Điều này sẽ giúp tôi và nhiều người khác chủ động hơn, không còn phải vội vã chạy theo tàu nữa.
May mắn thay, gần đây tôi đã quen với việc sử dụng Trae IDE—một IDE miễn phí tích hợp các model AI mạnh mẽ như Claude và GPT—để hoàn thành các dự án nhỏ hỗ trợ công việc ở công ty. Vì vậy, tôi quyết định tận dụng công cụ này để biến ý tưởng thành hiện thực.
1. Thu thập dữ liệu lịch trình.
Do không có API công khai hay lịch trình chi tiết, tôi bắt đầu bằng cách tự thu thập dữ liệu. Trong 3 ngày liên tiếp, tôi ghi lại thời gian tàu đến tại các ga trên tuyến đường đi làm của mình để tạo dữ liệu mẫu. Đây là nền tảng để AI phân tích và xây dựng lịch trình đầy đủ cho tuyến tàu trong suốt thời gian hoạt động.
Đây sẽ là dữ liệu ban đầu giúp các model AI phân tích xem dựa trên lịch trình để build lên toàn bộ lịch trình của tuyến theo thời gian hoạt động của tàu.
Tôi bắt đầu với một prompt đơn giản trong Trae IDE:
Liệt kê danh sách các ga trên tuyến metro Cát Linh - Hà Đông
Sau khi có danh sách, tôi tiếp tục với prompt:
Tạo một website cơ bản để theo dõi hành trình tàu, bao gồm các ga [danh sách ga]. Sử dụng Supabase làm database.
Chỉ trong vài phút, tôi đã có một dự án cơ bản với những thông tin cần thiết. Ở giai đoạn này, tôi tập trung vào dữ liệu hơn là giao diện, nên UI/UX chưa được tối ưu.
Tiếp theo, tôi yêu cầu Trae IDE tạo các file cần thiết để triển khai ứng dụng lên Fly.io—một nền tảng miễn phí và tiện lợi. Nhờ tài khoản Supabase và Fly.io có sẵn, cùng sự hỗ trợ của AI, tôi chỉ mất chưa đầy 20 phút để hoàn thành toàn bộ quy trình triển khai.
Dĩ nhiên, tôi đã có sẵn tài khoản Supabase và Fly.io từ trước, nên mọi thứ diễn ra khá trơn tru.
Dữ liệu thu thập được chính là từ các chuyến tàu của tôi di chuyển hàng ngày. Nó đơn giản là thời gian tàu đến ga, thời gian tàu rời ga.
2. Xây dựng MVP với Trae IDE
Với dữ liệu cơ bản trong tay, tôi bắt tay vào xây dựng MVP (Minimum Viable Product)—một phiên bản ứng dụng tối giản nhưng đủ chức năng. Vì dự án có phần phức tạp hơn, tôi không thể chỉ dùng các prompt đơn giản. Thay vào đó, tôi tạo một file markdown chi tiết, bao gồm:
- Mục đích của project
- Thông tin của tuyến, thời gian hoạt động, dữ liệu mẫu của các chuyến tàu.
- Thông tin về UI
- Công nghệ sử dụng
- Các steps cơ bản để xây dựng sản phẩm.
Tôi cung cấp file này cho Trae IDE để AI có đủ ngữ cảnh. Tuy nhiên, không phải mọi thứ đều suôn sẻ ngay từ đầu. Tôi phải thử nghiệm và điều chỉnh prompt nhiều lần để đạt được kết quả mong muốn.
Tôi chủ yếu sử dụng model Claude Sonnet—một model mạnh mẽ trong việc phát triển sản phẩm. Giao diện website được AI tự động tạo mà tôi không cần viết một dòng code nào.
Dựa trên dữ liệu từ các hệ thống metro quốc tế, AI tự động cung cấp thông tin hữu ích như địa chỉ, tiện ích và các tuyến xe buýt liên kết. Khác với nhiều quốc gia, nhu cầu về chỗ gửi xe máy tại các ga metro ở Việt Nam là rất lớn. Vì vậy, tôi đã bổ sung thông tin này vào ứng dụng như một tiện ích không thể thiếu. Sau nhiều lần tinh chỉnh prompt, tôi tối ưu hóa giao diện và đồng bộ lịch trình tàu.
Để triển khai tauoi.com, tôi sử dụng prompt đơn giản:
Deploy dự án lên fly.io
Trae IDE tự động tạo Dockerfile và các file cấu hình cho Fly.io, đảm bảo quá trình triển khai diễn ra mượt mà mà không cần viết thêm code.
Với dự án này, tôi chọn Remix thay vì VueJS/Nuxt quen thuộc để thử sức với một framework mới. Sự thay đổi này không chỉ mang lại trải nghiệm thú vị mà còn giúp tôi khám phá cách tiếp cận khác biệt trong phát triển web.
Vậy là chỉ với Trae IDE và một chút công sức, tôi đã có một MVP tuyệt vời giúp hành trình metro thuận tiện hơn!
3. Cảm nhận cá nhân
Di chuyển bằng metro là một trải nghiệm hiện đại mà tôi rất thích—nhanh chóng, sạch sẽ, tiện lợi và văn minh. Không phải lo tắc đường, không gian yên tĩnh, tôi còn có thời gian thư giãn thay vì mệt mỏi lái xe. Tuy nhiên, metro cũng có những hạn chế: giá vé đôi khi cao hơn xe buýt, và khoảng cách từ ga đến nhà không phải lúc nào cũng thuận tiện. Đặc biệt, việc chờ đợi 5–10 phút cho một chuyến tàu, dù không vô ích, vẫn khiến tôi tự hỏi: “Liệu có cách nào tối ưu hơn không?”
Câu hỏi tương tự cũng xuất hiện khi tôi phát triển sản phẩm: Làm sao để tiết kiệm thời gian mà vẫn đảm bảo chất lượng? Trae IDE chính là câu trả lời. Với khả năng tự động hóa, gợi ý thông minh và tích hợp các model AI mạnh mẽ, công cụ này giúp tôi biến ý tưởng thành hiện thực nhanh chóng. AI không chỉ hỗ trợ viết code mà còn gợi ý kiến trúc, phát hiện lỗi tiềm ẩn và tạo giao diện—giống như một cộng sự không nghỉ ngơi, luôn sẵn sàng đồng hành.
Hiện tại, tôi đang sử dụng website hàng ngày và tiếp tục hoàn thiện MVP. Kế hoạch sắp tới là thử nghiệm rộng rãi hơn, tối ưu giao diện, bổ sung dữ liệu cho các tuyến khác và thêm tính năng. Hy vọng sản phẩm này sẽ giúp nhiều người tiết kiệm thời gian chờ đợi, để mỗi chuyến metro đều đúng nhịp với cuộc sống của họ.
Nếu bạn có dữ liệu về các tuyến metro khác, ý tưởng cải tiến, kinh nghiệm dùng AI trong phát triển sản phẩm, hay chỉ đơn giản muốn chia sẻ trải nghiệm đi metro của mình—hãy để lại bình luận nhé!
Cảm ơn bạn đã đọc đến đây. Hy vọng chúng ta sẽ gặp nhau đâu đó: trên tàu điện, trong dòng code, hay trên hành trình xây dựng những sản phẩm ý nghĩa hơn.