Công tyĐọc khoảng 4 phút
HOJA — SaaS đa tenant tại Hyojung Softtech
Phạm vi công việc trên HOJA (hoja.vn): tích hợp mạng xã hội và Zalo OA, công cụ influencer, Kanban, hóa đơn MISA, thanh toán gói, cùng các công nghệ đã dùng.
- Next.js
- NestJS
- GraphQL
- PostgreSQL
- React Native
- BullMQ
Bối cảnh#
HOJA (hoja.vn) là SaaS đa tenant cho doanh nghiệp vừa và nhỏ tại Việt Nam, gom marketing mạng xã hội, khách hàng, bán hàng, kế toán và quản lý công việc vào một hệ thống. Sản phẩm gồm cổng web nghiệp vụ, trang quản trị vận hành, cổng cho influencer, app di động và một API GraphQL dùng chung.
- Vị trí: Software Engineer, nhóm phát triển 2 người.
- Thời gian: từ 06/2026 đến nay.
- Cách làm việc: làm trên nhánh riêng; thay đổi vào nhánh chính qua pull request và các bước kiểm tra CI.
- Nền tảng đa tenant (tổ chức, vai trò, entitlement) và hạ tầng production do trưởng nhóm dựng từ đầu; phần việc của tôi xây trên nền đó.
Phạm vi công việc#
Mạng xã hội và marketing#
- Kết nối kênh Facebook Page, Instagram, Threads, TikTok: OAuth, làm mới token, ngắt kết nối.
- Đăng bài lên các kênh, gồm carousel và poll trên Threads, video và ảnh trên TikTok.
- Hộp thư hợp nhất cho Facebook, Instagram, Threads và Zalo, cập nhật theo thời gian thực, có nhãn và ghi chú khách hàng.
- Số liệu Facebook Page và quảng cáo, tìm bài theo hashtag Instagram, quản lý bình luận.
- Zalo Official Account: kết nối OA, nhận webhook, trả lời tin nhắn, đồng bộ người theo dõi, mẫu tin.
- Influencer (KOL/KOC): chiến dịch tuyển, form ứng tuyển công khai, sàng lọc hồ sơ, email kết quả, danh sách nghiên cứu creator TikTok, xuất CSV/Excel.
- Khởi tạo SDK TypeScript dùng nội bộ cho các nền tảng trên, sau đó cùng trưởng nhóm phát triển tiếp.
Quản lý công việc#
- Bảng Kanban kéo-thả theo dự án, modal công việc, subtask, người phụ trách và người duyệt.
- Hiển thị người đang xem hoặc sửa, phát hiện xung đột khi nhiều người cùng sửa một công việc.
- Phân quyền theo dự án, xuất công việc ra PDF/Word.
Kế toán, bán hàng, thanh toán#
- Tích hợp hóa đơn điện tử MISA meInvoice: tra cứu, báo cáo, phát hành từ đơn bán, ký bằng USB token.
- Thanh toán gói dịch vụ qua NAPAS; App Store In-App Purchase và Google Play Billing trên app di động.
- Màn hình bán nhanh trên web, ngưỡng tồn kho, sản phẩm nhiều biến thể có mã vạch, doanh thu theo chi nhánh.
- Đọc hóa đơn mua vào từ hộp thư công ty cho phần quản lý chi phí.
Nền tảng và giao diện#
- Màn hình phân quyền theo người dùng và theo vai trò.
- Màn hình khách hàng, cài đặt công ty, nhập địa chỉ theo cả cách phân cấp hành chính trước và sau năm 2025.
- Giao diện ba ngôn ngữ: Việt, Hàn, Anh.
- Upload file lớn tiếp tục được khi rớt mạng; chuyển video sang HLS.
- Một số màn hình trên app React Native: gói dịch vụ, hộp thư, hóa đơn điện tử, trang chủ.
Công nghệ đã dùng#
| Nhóm | Công nghệ |
|---|---|
| Frontend web | Next.js 16, React 19, TypeScript, Apollo Client, GraphQL Codegen, Tailwind CSS 4 |
| Mobile | React Native 0.80, NativeWind, React Navigation, Redux Toolkit |
| Backend / API | NestJS 11 trên Fastify, Apollo Server, GraphQL, Prisma 7 |
| Dữ liệu | PostgreSQL 16, Redis |
| Xử lý nền, realtime | BullMQ, Playwright, ffprobe, GraphQL subscription qua graphql-ws |
| Tích hợp | Meta Graph API, Threads API, TikTok for Developers, Zalo OA, MISA meInvoice, NAPAS, App Store / Google Play Billing, Cloudflare Turnstile |
| Hạ tầng | Docker, Docker Compose, nginx, Cloudflare Tunnel, GitHub Actions (runner tự host) |
| Công cụ, kiểm thử | npm workspaces, Turborepo, Jest, Playwright, ESLint |
Môi trường và hệ điều hành#
- Máy phát triển: macOS; một giai đoạn làm trên Windows (Git Bash).
- Mobile: chạy thử trên iOS Simulator (Xcode) và thiết bị Android.
- Container: Linux (Node 22 trên Alpine và Debian slim; PostgreSQL, Redis trên Alpine).
- Production: container Linux, ra Internet qua Cloudflare Tunnel.
- Ký số hóa đơn: công cụ ký chạy trên Windows với USB token.
- CI: runner GitHub Actions tự host trên Linux.
Vận hành và phát hành#
- Sửa và rút gọn các bước CI: lint không cho phép cảnh báo, typecheck, test, kiểm tra migration; nâng phụ thuộc khi có cảnh báo bảo mật mức critical.
- Sửa Dockerfile, cấu hình định tuyến nginx cho tên miền chính, script watchdog Docker.
- Điều tra và sửa lỗi production liên quan tới webhook, token và tích hợp nền tảng.
- Chuẩn bị hồ sơ duyệt ứng dụng: sửa giao diện đăng bài TikTok theo yêu cầu kiểm duyệt Content Posting API, viết kịch bản quay video và khai báo xử lý dữ liệu cho Meta/Threads, đăng ký webhook Zalo OA.