Dù bạn cần gì đi nữa, tôi (và Cursor AI) sẽ code ngay cho bạn thứ đó.
Một buổi trưa tại văn phòng, khi mọi người còn đang lúng túng chia lại hóa đơn bữa ăn của lần tụ tập trước, tôi nghe một đồng nghiệp than thở: "Splitwise bản miễn phí giờ thật sự không ổn, không thể chia theo từng món, còn bản Pro thì lại gần 4 USD/tháng mà không dùng thường xuyên".
Quả thật vậy, dạo gần đây, mỗi lần đi ăn, chúng tôi cứ phải tính đi tính lại xem ai đã trả bao nhiêu rồi, ai chưa. Có người thì 'om' tiền mấy hôm mới trả, đến lúc đó thì tình huống như thế này sẽ xảy ra.

Đi ăn mà phải như thế này thì quả thật chẳng vui gì

Có người đề nghị dùng Splitwise, nhưng mà nếu dùng bản miễn phí thì lại bị giới hạn chi tiêu, còn bản trả phí thì lại không hề rẻ
Là người đã từng tự học lập trình và hiện đang sử dụng Cursor AI để nghiên cứu các công cụ hỗ trợ lập trình, tôi nghĩ ra một ý tưởng đơn giản: Tạo ra một web app tính tiền ăn dành riêng cho nhóm mình, với tiêu chí là đơn giản, dễ dùng, gọn gàng và đặc biệt là miễn phí.
Ý tưởng ban đầu
Đương nhiên, trước khi làm bất cứ điều gì, bạn phải có một ý tưởng. Nếu không có ý tưởng, bạn sẽ chẳng thể bắt đầu được gì. Tôi đã dành khoảng 10 phút để lên kế hoạch cho các tính năng cần có của web app này. Mục tiêu chính là phải làm được những điều sau đây:
- Thêm chi tiêu: bao gồm tên chi tiêu, số tiền, người trả, người tham gia và tùy chọn chia đều hoặc không chia đều.
- Nếu không chia đều, cần có ô nhập để điền phần chi phí của từng người sao cho tổng cộng bằng số tiền mà người trả đã bỏ ra.
- Hiển thị kết quả chia tiền theo từng người, ai nợ ai bao nhiêu.
- Cho phép chỉnh sửa hoặc xóa bất kỳ chi tiêu nào.
- Giao diện phải đơn giản, đẹp mắt, hiện đại, sử dụng tông màu xanh lá pastel.
- Trang web phải tối ưu cho di động, vì hầu hết mọi người sẽ sử dụng nó trên điện thoại.
Sau đó, tôi viết một prompt chi tiết để yêu cầu Cursor AI xây dựng giao diện và logic ban đầu (đã được tôi tối ưu như sau):
Prompt cụ thể và cần phải được chi tiết (tham khảo):
"Tôi muốn bạn tạo giúp tôi một trang web tính tiền và chia tiền cho nhóm bạn tôi khi đi ăn hoặc cà phê. Nhóm tôi có 7 người: Phương, Thắng, Hoàng, Giang, Đức, Duyệt, Tâm, nhưng không phải lúc nào cũng đủ 7 người tham gia.
Trang web này sẽ cho phép thêm các chi tiêu mới để thực hiện tính toán, bao gồm tên chi tiêu, số tiền chi tiêu (với type=number), người trả (chọn từ menu dropdown người trả trong số 7 người), những người tham gia (checkbox để chọn ai tham gia), và một toggle switch (giống như iOS) để bật/tắt tính năng chia đều. Nếu không chia đều, sẽ có phần nhập tiền cho từng người sao cho tổng chi tiêu của tất cả những người tham gia bằng số tiền mà người trả đã bỏ ra.
Sau khi lưu chi tiêu, trang web sẽ tính toán và hiển thị số tiền cho mỗi người, kết quả sẽ chia thành 2 phần: tổng kết cá nhân và các giao dịch cần thực hiện. Danh sách chi tiêu cho phép chỉnh sửa hoặc xóa chi tiêu. Mỗi khi người dùng lưu chi tiêu, kết quả chia tiền sẽ tự động được tính lại.
Các giao dịch sẽ hiển thị ai trả tiền cho ai và số tiền tương ứng. Giao diện trang web phải đơn giản, tinh tế, hiện đại, với màu xanh lá pastel làm chủ đạo, font Roboto, sử dụng HTML/CSS/JS và các thư viện cần thiết để tối ưu trang web. Tên trang web sẽ là EzSplit. Trang web cần xử lý các lỗi và trường hợp ngoại lệ nếu có. Cuối trang là footer 'Made with ♥️ by duyet' và copyright tác giả. Trang web cần tối ưu cho mobile vì sẽ chủ yếu sử dụng trên điện thoại."
Tôi sử dụng model claude-3.7-sonnet MAX để xử lý prompt này. Đây là model trả phí theo từng request, giá 0,05 USD/lần, yêu cầu bật Usage-based pricing trong phần cài đặt của Cursor. Gõ Cmd + K để mở hộp thoại prompt khởi tạo.

Nhớ bật cái này lên mới dùng được model claude-3.7-sonnet MAX

Bật xong rồi nhớ chọn model claude-3.7-sonnet MAX để khởi tạo giao diện nền tảng nhé. Giao diện nền tảng rất quan trọng, nếu muốn kết quả tốt nhất, đẹp nhất thì nên sử dụng model này để khởi tạo
Chưa đầy 5 phút sau, Cursor trả lại cho tôi hơn 1.000 dòng mã với giao diện web hoàn chỉnh, từ form nhập chi tiêu, tính toán chia tiền cho đến bảng kết quả và logic xử lý.

Vẫn như mọi lần, sau khi đọc hiểu prompt, Cursor AI tự động tạo toàn bộ trang web và chèn trực tiếp vào tệp index.php

Sau khi tạo xong, tôi deploy luôn lên web để kiểm tra giao diện. Giao diện nền tảng sau khi tạo xong khá ổn, giờ chỉ cần test chức năng thôi
Tôi chỉ cần chỉnh sửa chút về CSS, căn chỉnh lề, sửa lại một số đoạn text và logic hiển thị. Quan trọng là, tôi phải nhắc lại một lần nữa, tôi KHÔNG viết một dòng code nào, tất cả chỉ cần nhập prompt, đọc và chọn apply các phần code phù hợp.

Form thêm chi tiêu có các trường bắt buộc như tên chi tiêu, số tiền (tôi dùng đơn vị K thay VNĐ để tránh phải nhập số 0 quá nhiều lần), người trả, danh sách những người tham gia và toggle switch chia đều cho tất cả

Sau khi thêm chi tiêu, danh sách chi tiêu sẽ hiện ra như thế này, mỗi mục chi tiêu sẽ có tùy chọn chỉnh sửa hoặc xóa, và sau mỗi thay đổi, trang web tự động tính toán lại số tiền nợ giữa các người tham gia

Kết quả chia tiền sẽ hiển thị phần tổng kết cá nhân, cho biết ai đã chi bao nhiêu tiền

Các giao dịch cần thực hiện sẽ được hiển thị dưới dạng rất trực quan, ai nợ ai là biết ngay
Đồng nghiệp gợi ý thêm tính năng tạo mã QR chuyển khoản
Sau khi demo cho nhóm đồng nghiệp dùng thử, có người gợi ý thêm tính năng hiển thị mã QR để chuyển khoản trực tiếp, một ý tưởng hợp lý, nhất là trong thời đại chuyển khoản chỉ mất 5s như hiện nay.

Anh đồng nghiệp gợi ý thêm tính năng tạo mã QR để chuyển khoản cho tiện. Nghe cũng hợp lý
Tôi tìm hiểu và phát hiện nền tảng qr.sepay.vn hỗ trợ tạo mã QR chuyển khoản dựa trên URL truy vấn.

Trang SePay cho phép tạo mã QR bằng truy vấn URL dạng GET như thế này. Quả là một endpoint API rất tiện lợi, tôi không cần phải dùng xác thực Authorization hay đăng ký tài khoản như VietQR, chỉ cần gửi truy vấn GET là có ngay mã QR với số tài khoản, tên ngân hàng, số tiền và nội dung chuyển khoản
Tôi tiếp tục prompt Cursor AI như sau:
"Tôi cần thêm tính năng hiển thị QR code để chuyển khoản dựa trên số tiền bạn tính toán ra được. Mỗi dòng giao dịch cần thực hiện sẽ có thêm dòng "Bấm vào đây để tạo QR chuyển tiền", khi bấm vào sẽ hiển thị mã QR để người nợ tiền trả cho người đã chủ trì chi tiêu trước đó.
Mã QR sẽ được tạo ra dưới dạng ảnh thông qua endpoint sau đây: https://qr.sepay.vn/img?acc=[số tài khoản]&bank=VPB&amount=[số tiền]&des=[nội dung chuyển khoản]&template=compact&download=false (truy cập vào endpoint này sẽ trả về ảnh QR dựa trên truy vấn đằng sau endpoint)
Số tài khoản sẽ được cung cấp cụ thể cho từng người như sau:
Phương: 152748566
Thắng: 152748566
Giang: 137146843
Hoàng: 142451433
Đức: 257357201
Duyệt: 29091998
Số tiền sẽ là số tiền mà người nợ trả cho người đã trả tiền.
Nội dung chuyển khoản theo format: [người nợ] ck [người trả] tiền [tên các chi tiêu phân cách bởi dấu cách]
Tôi cần bạn đảm bảo mã QR được làm mới sau mỗi lần tính toán."
Tôi chuyển sang dùng model claude--sonnet trong gói Pro (cho phép 500 fast premium request/tháng) để tối ưu chi phí. Chỉ sau khoảng 50 request (bao gồm sửa lỗi nhỏ, tối ưu CSS, thêm nút toggle…), trang web của tôi đã hoàn thiện và sẵn sàng sử dụng.

Như mọi khi, hãy sử dụng công cụ Agent khi làm việc với Cursor AI để tự động refactor và áp dụng code một cách hiệu quả
Giao diện rất dễ sử dụng, thao tác đơn giản, chỉ cần chia tiền xong, bấm tạo QR là có thể quét và chuyển khoản ngay lập tức.

Sau khi thêm tính năng tạo mã QR, trang web sẽ tự động hiển thị mã QR với số tiền và nội dung chuyển khoản đã được thiết lập từ trước





Thử nghiệm giao diện trên iPhone 16: Trông cũng khá "ngon lành" đấy chứ
Chưa đầy một giờ, chi phí chưa đến hai bát phở.
Sau tất cả, tôi có thể tổng kết lại những gì tôi đã làm để tạo ra trang web tính tiền "xịn" hơn cả Splitwise (theo đánh giá của riêng tôi).
- Lên ý tưởng: 10 phút (không có ý tưởng thì chẳng làm được gì)
- Viết prompt và tạo mã code ban đầu: 5 phút (bước này cực kỳ quan trọng vì nó sẽ quyết định giao diện và tính năng nền tảng của website/ứng dụng, nên tôi đã sử dụng claude-3.7-sonnet MAX)
- Tinh chỉnh, sửa lỗi, thêm tính năng QR, feedback nội bộ: mất khoảng 40 phút tổng cộng
Về phần chi phí, dựa trên mức phí của gói Cursor AI Pro tôi đang dùng, cùng chi phí bên ngoài gói Pro (chi phí sử dụng model MAX), tôi tính toán như sau:
- 3 request sử dụng claude-3.7-sonnet MAX: 0,15 USD (khoảng 3.840 đồng)
- Khoảng 50 fast premium request dùng claude--sonnet (trong gói Pro): tầm 2 USD (gói Pro có giá 20 USD/tháng)
Tổng chi phí chỉ khoảng 2,15 USD, tương đương 55.000 đồng, chưa đến giá của 2 bát phở tôi ăn với đồng nghiệp.
Tôi gọi trang web của mình là EzSplit, vì đúng như tên gọi: chia tiền dễ dàng, tiện lợi và không phải lo phí duy trì như những nền tảng khác.
Chỉ cần bạn có một ý tưởng thôi
Tôi không phải là một lập trình viên chuyên nghiệp, chỉ có nền tảng kiến thức cơ bản. Nhưng với công cụ như Cursor AI và một chút tư duy logic, bạn hoàn toàn có thể tạo ra một trang web, ứng dụng, hay công cụ phù hợp với nhu cầu của mình.
Trong trường hợp này, ý tưởng ban đầu chỉ đơn giản là chia tiền, nhưng sau khi thử nghiệm và phát triển, tôi nhận thấy tiềm năng mở rộng. Có thể trong tương lai, tôi sẽ phát triển thêm cho EzSplit, ví dụ như:
- Xây dựng hệ thống đăng ký, đăng nhập tài khoản và nhóm chia tiền động.
- Cho phép người dùng thêm ngân hàng và số tài khoản tùy chỉnh.
- Lưu trữ lịch sử chi tiêu theo ngày/tháng (cần xử lý thêm ở backend và database).
- Gửi nhắc nhở về các khoản nợ chưa thanh toán qua email, Telegram, SMS...
- Thêm phần thống kê chi tiêu và biểu đồ trực quan dễ nhìn.
Chỉ cần bạn có một ý tưởng rõ ràng và chi tiết, phần còn lại Cursor AI sẽ lo hết cho bạn.
