Side projects · Java · Android

Chỉ là sở thích cá nhân.
Build vài thứ lúc rảnh rỗi...

Dự án
03
Backend
Java 24
Mobile
Kotlin
Coverage gate
90%

01 Web platform · Production

Funny Movies

Nền tảng xem và chia sẻ video ngắn, từ backend Java 24 tới SPA React 19, tự deploy lên Kubernetes sau mỗi lần push.

  • Streaming theo Range request với LRU cache, chạy trên Virtual Threads
  • Đăng nhập passwordless bằng magic link, MFA TOTP tùy chọn
  • Tự đồng bộ video từ Google Drive, import từ YouTube và Facebook
  • Admin dashboard phân quyền theo role, giao diện Việt / Anh
  • CI/CD: GitHub Actions → Docker → Helm, coverage gate 90%
  • Java 24
  • Spring Boot 3.5
  • PostgreSQL
  • React 19
  • TanStack Query
  • Kubernetes
Trang chủ Funny Movies: video dọc kèm cột like, comment, save, share

02 Developer tool · Open source

AIC

Abstractness & Instability Calculator: đo kiến trúc package của dự án Spring Boot và chặn build khi thiết kế xuống cấp.

  • Tính A, I và khoảng cách D tới Main Sequence cho từng module package
  • Đồ thị phụ thuộc force-directed, phát hiện vòng phụ thuộc bằng Tarjan SCC
  • CLI headless không cần Spring (~2.5 MB) làm quality gate trong CI
  • Web UI trực quan và export JSON qua GET /api/metrics
  • Java 22+
  • Spring Boot
  • Maven multi-module
  • Nix Flake
Giao diện AIC: biểu đồ Abstractness theo Instability và chi tiết package

03 Android app · v1.5.3

Doc Scanner

App quét tài liệu cho Android: chụp, tự cắt phối cảnh, chỉnh sửa rồi xuất PDF. Mọi thứ xử lý ngay trên máy, không upload đi đâu.

  • Tự phát hiện góc giấy bằng ML Kit, máy không có Play Services thì crop 4 góc thủ công
  • Xoay, chỉnh sáng, tương phản, thang xám, có undo; kéo thả để sắp xếp trang
  • Xuất PDF hoặc từng ảnh, chia sẻ thẳng sang app khác
  • Không tài khoản, không mạng, không quảng cáo
  • Kotlin 2.0
  • Jetpack Compose
  • Material 3
  • Room
  • Coroutines
  • Android 8.0+
Doc Scanner: xem tài liệu và menu thao tác
Doc Scanner: màn hình chỉnh sửa trang

Mọi dự án đều Open Source.

Code, tài liệu kiến trúc và ADR nằm trên GitHub.

github.com/nguyenhuuca ↗