
TingTing Logo
Ứng dụng quản lý tài chính nhóm và chia sẻ chi tiêu thông minh, thời gian thực.

Live Demo
🚀 Giới thiệu (Overview)
là một ứng dụng web hiện đại giúp các nhóm bạn bè, gia đình, hoặc đồng nghiệp dễ dàng ghi chép và chia sẻ các khoản chi tiêu chung. Ứng dụng tự động tính toán "ai nợ ai bao nhiêu tiền" bằng thuật toán thông minh, tối giản hóa các luồng tiền phức tạp và hỗ trợ thanh toán nhanh gọn thông qua mã QR ngân hàng.
[!TIP]
📸 Hình ảnh giao diện thực tế (Screenshots)
| Đăng nhập | Trang Chủ |
 Đăng nhập |  Trang chủ |
| Chi tiết nhóm | Sổ cái & Thanh toán |
 Chi tiết nhóm |  Sổ cái & Thanh toán |
| Chia đều chi phí | Chia tùy chỉnh |
 Chia đều |  Chia tùy chỉnh |
✨ Tính năng nổi bật (Key Features)
- Mọi thao tác thêm biên lai, sửa chi tiêu, thanh toán nợ đều được đồng bộ thời gian thực (Real-time) tới tất cả các thành viên trong nhóm thông qua Socket.io.
- Tự động đối trừ công nợ chéo giữa các thành viên. (VD: A nợ B 50k, B nợ C 50k -> A chỉ cần trả thẳng C 50k).
- Hỗ trợ upload ảnh biên lai. Tích hợp tính năng tự động nén ảnh (Client-side Image Compression) trước khi đẩy lên AWS S3, giúp tiết kiệm băng thông và tối ưu tốc độ tải.
- Tự động tạo mã QR VietQR dựa trên số tiền cần trả và tài khoản ngân hàng của người nhận, giúp thanh toán chỉ trong 1 lần quét.
- Xác thực bằng JWT Token an toàn. Lưu trữ mật khẩu bằng Bcrypt.
🛠 Công nghệ sử dụng (Tech Stack)
Frontend
- React 19, Vite
- TailwindCSS 4, Framer Motion (Micro-animations)
- Client-side Image Compression (
browser-image-compression
), LocalStorage State Persistence.
Backend
- Node.js, Express, TypeScript
- PostgreSQL (trên nền tảng Supabase)
- Prisma
- Socket.io
- AWS S3 (cho việc lưu trữ ảnh avatar, hóa đơn)
-
- (In-memory caching cho các API đọc nhiều).
- , (Chống DDoS & Brute-force).
☁️ Hạ tầng & Triển khai (Deployment Architecture)
Ứng dụng được triển khai 100% trên các nền tảng Cloud hiện đại, đảm bảo tính sẵn sàng cao và khả năng mở rộng:
- Hosting Frontend (React/Vite). Tự động deploy qua GitHub CI/CD, tận dụng Edge Network để tải trang cực nhanh.
- Hosting Backend (Node.js/Express). Đảm bảo tính ổn định và duy trì các kết nối Socket.io liên tục.
- Cung cấp cơ sở dữ liệu PostgreSQL mạnh mẽ, cấu hình sẵn Connection Pooler (Pgbouncer) để xử lý lượng lớn truy vấn.
- Lưu trữ toàn bộ hình ảnh avatar và biên lai, đảm bảo an toàn dữ liệu và tối ưu chi phí lưu trữ.
- Hệ thống giám sát (Monitoring) tự động ping tới server Render mỗi 5 phút, giữ cho backend luôn "thức" (awake) để loại bỏ hoàn toàn độ trễ khởi động lạnh (Cold Start).
📈 Kiến trúc & Tối ưu hiệu suất (Performance & Architecture)
Trong quá trình xây dựng, ứng dụng đã được áp dụng nhiều kỹ thuật tối ưu để đảm bảo tốc độ và trải nghiệm:
- Các API tra cứu dữ liệu tĩnh (như thông tin User Profile) được cache bằng , giảm thời gian phản hồi từ 150ms xuống chỉ còn . Hệ thống tự động làm sạch (invalidate) cache khi dữ liệu thay đổi.
- Trình duyệt người dùng sẽ tự động nén ảnh biên lai (xuống tối đa 1MB, độ phân giải chuẩn, định dạng JPEG) trước khi tải lên.
- Kết nối Database được quản lý bằng Connection Pooler trên cổng IPv4, đảm bảo ổn định khi có hàng nghìn truy vấn đồng thời.
- Sử dụng các job ping định kỳ để đảm bảo máy chủ không rơi vào trạng thái "sleep", loại bỏ hoàn toàn độ trễ ở lần truy cập đầu tiên.
💖 Lời Cảm Ơn (Acknowledgments)
Cảm ơn bạn đã dành thời gian ghé thăm và tìm hiểu về dự án .
Đây là một dự án tâm huyết được xây dựng nhằm giải quyết bài toán tài chính nhóm một cách thực tế và tối ưu nhất. Nếu bạn là một nhà tuyển dụng, hy vọng dự án này có thể phần nào thể hiện được tư duy thiết kế hệ thống, khả năng xử lý bài toán hiệu suất và kỹ năng lập trình của tôi.
Đặc biệt gửi lời cảm ơn tới cộng đồng Open Source vì các công nghệ tuyệt vời: