Portfolio

TJGuard - Phần mềm quản lý mật khẩu

Next.jsSupabaseTailwind CSSPayosUpstash Redis

1. Công nghệ sử dụng

  • Xây dựng giao diện người dùng và REST API với Next.js
  • Sử dụng PostgreSQL thông qua Supabase làm cơ sở dữ liệu chính
  • Áp dụng Argon2id để băm/xác thực mật khẩu và XChaCha20-Poly1305 để mã hóa dữ liệu nhạy cảm đối xứng
  • Sử dụng Supabase Edge Functions kết hợp cronjob để chạy các tác vụ định kỳ hằng ngày, bao gồm: chuyển trạng thái gói đăng ký hết hạn sang expired, vô hiệu hóa 2FA với tài khoản hết hạn gói, gửi email nhắc nhở trước khi gói hết hạn, ...
  • Sử dụng GitHub Actions để tự động sao lưu cơ sở dữ liệu hằng ngày
  • Tích hợp Payos để xử lý thanh toán
  • Sử dụng Upstash Redis để giới hạn tốc độ request trên các endpoint quan trọng — đăng ký, OTP, đặt lại mật khẩu, chia sẻ vault - chống spam và lạm dụng.
System architecture
Edge Functions thực hiện các logic định kỳ như chuyển trạng thái gói, gửi email nhắc nhở, ...
System architecture
Cronjob gọi Edge Functions thực hiện các tác vụ định kỳ
System architecture
Github Actions tự động sao lưu cơ sở dữ liệu hằng ngày
System architecture
Tích hợp Payos để xử lý thanh toán cho các gói đăng ký
System architecture
Sử dụng Upstash Redis để giới hạn tốc độ request trên các endpoint quan trọng

2. Ứng dụng

  • Website marketing TJGuard, xem tại đây
  • App TJGuard, xem tại đây