GVI NETWORK — BÁO CÁO KỸ THUẬT & KẾ HOẠCH TRIỂN KHAI ĐẦY ĐỦ
Phiên bản: 1.0.0 Ngày: 2026-07-20 Trạng thái: 🔴 IN PROGRESS — Nhiều module thiếu dữ liệu seed & lỗi runtime Mục tiêu: Tái tạo đầy đủ y hệt demo.mashdiv.com với branding GVI cho thị trường Việt Nam
2.2 Trạng Thái Hiện Tại — So Sánh Với demo.mashdiv.com
Tính năng
demo.mashdiv.com
goldvninvest.online
Trạng thái
CSS Design System
✅ Đầy đủ
✅ Y hệt (đã copy)
✅ OK
Header component
✅ Premium glassmorphism
✅ Giống
✅ OK
Home.tsx component
✅ Full featured
✅ Giống code
✅ OK
Extension sections
✅ Spot/Binary/Futures/Eco/Staking
⚠️ Code có nhưng thiếu data
🔴 THIẾU DATA
Live Markets panel (hero)
✅ Hiển thị
❌ Ẩn (spotEnabled=false)
🔴 LỖI SETTINGS
Landing page content
✅ Tiếng Anh (mashdiv)
✅ Tiếng Việt (đã seed)
✅ OK
Settings (148 keys)
✅ Đầy đủ
✅ 148 keys trong DB
⚠️ API cache bug
API /settings trả về
✅ 100+ settings
❌ Chỉ 7 settings
🔴 CACHE BUG
Spot markets
✅ 16 cặp active
✅ 16 cặp (có sẵn)
✅ OK
Futures markets
✅ Active
✅ 7 thị trường
✅ OK
Binary markets
✅ Active
❌ 0 markets
🔴 THIẾU
Binary durations
✅ 8 durations
❌ 0 durations
🔴 THIẾU
Staking pools
✅ 13 pools
❌ 0 pools
🔴 THIẾU
Investment plans
✅ Multiple
❌ 0 plans
🔴 THIẾU
Wallets
✅ Tạo khi đăng nhập
❌ 0 wallets
⚠️ NORMAL
Role permissions
✅ Đầy đủ
❌ 0 role_permissions
🔴 CRITICAL
Announcements
✅ Active
❌ 0
🔴 THIẾU
Ecosystem markets
✅ Active
❌ 0
🔴 THIẾU
API auth/role endpoint
✅ 200 OK
❌ 500 findAll error
🔴 CRITICAL
API user/profile
✅ 200 OK
❌ 500 findOne error
🔴 CRITICAL
2.3 Nguyên Nhân Gốc Rễ Lỗi findOne/findAll
LỖI: Cannot read properties of undefined (reading 'findOne')
Cannot read properties of undefined (reading 'findAll')
NGUYÊN NHÂN:
1. role_permission bảng TRỐNG (0 rows)
→ /api/auth/role không tìm được permissions → model.findAll() = undefined
2. binary_duration bảng TRỐNG (0 rows)
→ Binary cron jobs fail mỗi phút
3. exchange provider (binance/kucoin/xt) status = 0 (disabled)
→ EXCHANGE service fail khi lookup active provider
4. Sequelize models KHÔNG liên kết đúng vì thiếu dữ liệu seed
→ Các service access model.findOne trước khi model initialized
GIẢI PHÁP:
→ Seed role_permission (ưu tiên #1 — CRITICAL)
→ Seed binary_duration + binary_market
→ Enable ít nhất 1 exchange provider
→ Kiểm tra settings API cache
BƯỚC 3 — TRIỂN KHAI CẬP NHẬT TRANG CHỦ {#bước-3}
3.1 Những Gì Đã Hoàn Thành ✅
Hành động
Kết quả
Seed 148 settings vào DB
✅ Thành công
Tạo landing page content tiếng Việt (GVI)
✅ ID: b45b8a9b-5583-4ee4-b685-b66fa545320a
CSS design system y hệt demo.mashdiv.com
✅ Đã có sẵn
Codebase frontend component
✅ Y hệt demo (cùng repo)
Backend restart
✅ Online (port 4000)
3.2 Vấn Đề Settings API Cache — Cần Fix Ngay
Triệu chứng:
DB settings: 148 records ✅
API /api/settings: 7 records ❌
Giải thích: Backend có settings cache trong memory. Khi restart, cache được reload từ DB nhưng có thể đang đọc sai table hoặc có Redis cache layer.
-- Cần chạy: seed role_permission cho Super Admin và Admin
-- Lấy tất cả permissions và assign cho Super Admin (id=52)
INSERT INTO role_permission (roleId, permissionId)
SELECT 52, id FROM permission;
-- Admin (id=53) — nhận permissions không phải super-only
INSERT INTO role_permission (roleId, permissionId)
SELECT 53, id FROM permission
WHERE name NOT LIKE '%superadmin%' AND name NOT LIKE '%delete%';
-- Tạo ecosystem markets từ existing tokens
INSERT INTO ecosystem_market (id, currency, pair, status)
SELECT UUID(), symbol, 'USDT', 1
FROM ecosystem_token
WHERE status=1 LIMIT 10;
TRANG CHỦ (/)
├── Hero Section → ⚠️ Chờ settings API cache fix
├── Live Markets Panel → ❌ spotEnabled=false (settings API bug)
├── Extension Sections → ⚠️ Futures OK, Binary/Staking cần seed
├── Why Choose Us → ✅ Hoạt động
├── Getting Started → ✅ Hoạt động
└── CTA Section → ✅ Hoạt động
TRANG GIAO DỊCH SPOT (/trade)
├── TradingView Chart → ✅ Có 16 cặp exchange_market
├── Order Book → ⚠️ Cần exchange provider active
└── Spot Wallets → ❌ Cần settings API fix + wallet seed
TRANG BINARY (/binary)
├── Chart → ✅ Chart Engine extension active
├── Duration Selection → ❌ binary_duration trống
└── Order Placement → ❌ binary_market trống
TRANG FUTURES (/futures)
├── Markets → ✅ 7 futures_market active
└── Trading Engine → ✅ Extension active
TRANG MARKET (/market)
├── Spot Markets → ✅ 16 cặp
└── Futures Markets → ✅ 7 thị trường
TRANG STAKING (/staking)
└── Pools → ❌ staking_pool trống
TRANG INVESTMENT (/investment)
└── Plans → ❌ investment_plan trống
TRANG ECOSYSTEM (/ecosystem)
└── Markets → ❌ ecosystem_market trống (token có nhưng market chưa tạo)
ADMIN PANEL (/admin)
└── Dashboard → ❌ Lỗi findAll (role_permission trống)
AUTH (/login, /register)
└── Đăng nhập/Đăng ký → ⚠️ Đăng ký được, nhưng role permission lỗi
BƯỚC 4 — KIỂM TRA & TỐI ƯU {#bước-4}
4.1 Checklist Responsive Design
Breakpoint
Mô tả
Trạng thái
Mobile (< 640px)
Stack layout, menu drawer
✅ Code đã có
Tablet (640-1024px)
Hybrid layout
✅ Code đã có
Desktop (1024-1280px)
Full layout
✅ Code đã có
Large Desktop (> 1280px)
Extended nav
✅ Code đã có
4.2 Performance Targets
Metric
Target
Ghi chú
LCP
< 2.5s
Hero section load
FID / INP
< 100ms
Interaction response
CLS
< 0.1
Layout stability
Settings API
< 200ms
Cache được
WebSocket connect
< 1s
Ticker data
4.3 SEO & Meta Tags
Cần cập nhật next.config.js hoặc layout.tsx:
// frontend/app/[locale]/layout.tsx
export const metadata = {
title: "GVI — Sàn Giao Dịch Tài Sản Số Cho Người Việt",
description: "Gold VN Invest — An toàn, thuận tiện, hiệu quả. Mua bán BTC, ETH, GIV.",
keywords: "sàn giao dịch, crypto, GIV, Gold VN Invest, bitcoin",
openGraph: {
siteName: "GVI Network",
locale: "vi_VN",
}
}
PHÂN TÍCH LỖI RUNTIME {#lỗi-runtime}
Tổng Hợp Lỗi Từ PM2 Logs
CRITICAL (🔴):
GET /api/auth/role → 500 Cannot read properties of undefined (reading 'findAll')
GET /api/user/profile → 500 Cannot read properties of undefined (reading 'findOne')
→ Root cause: role_permission bảng TRỐNG (0 rows)
→ Fix: Seed role_permission ngay
HIGH (🟠):
[CRON] processPendingOrders failed: Cannot read properties of undefined (reading 'findAll')
[SPOT_RECON] Spot order reconciliation failed: ...
[BTC_SCAN] Error in scan cycle: ...
→ Root cause: Thiếu binary_duration, wallet, exchange_order models có data
→ Fix: Seed binary data, enable exchange provider
MEDIUM (🟡):
[EXCHANGE] Failed to fetch active provider: ...
→ Root cause: exchange table có 3 rows nhưng tất cả status = 0 (disabled)
→ Fix: UPDATE exchange SET status = 1 WHERE name = 'binance'
LOW (🟢):
Settings API cache: DB có 148, API trả 7
→ Root cause: Backend đang read từ old cache / chưa reload
→ Fix: pm2 restart backend --update-env hoặc clear cache
Sơ Đồ Luồng Lỗi
Request: GET /api/auth/role
↓
authController.getRole()
↓
models.role_permission.findAll() ← Lỗi xảy ra đây
↓
role_permission có 0 rows hoặc model chưa initialized
↓
undefined.findAll() → TypeError
[ ] 1. Seed role_permission cho Super Admin (52) và Admin (53)
→ Fix lỗi GET /api/auth/role → 500
→ Fix lỗi GET /api/user/profile → 500
→ SQL: INSERT INTO role_permission SELECT 52, id FROM permission
[ ] 2. Fix Settings API cache bug
→ DB có 148 settings nhưng API chỉ trả 7
→ Kiểm tra Redis cache / memory cache trong backend
→ Thực hiện: pm2 restart backend --update-env
→ Nếu có Redis: redis-cli FLUSHDB
[ ] 3. Enable exchange provider
→ UPDATE exchange SET status = 1 WHERE name = 'binance'
→ Fix lỗi [EXCHANGE] Failed to fetch active provider
[ ] 4. Seed binary_duration (6-8 durations)
→ Fix lỗi binary CRON processPendingOrders
→ Cần có durations: 1, 3, 5, 15, 30, 60 phút
🟠 HIGH — Cần làm trong 24h
[ ] 5. Seed binary_market từ exchange_market
→ Tạo binary markets cho BTC/USDT, ETH/USDT, SOL/USDT, GIV/VNL
[ ] 6. Seed staking_pool (3 pools cơ bản)
→ GIV pool (12% APR), USDT pool (8% APR), BTC pool (5% APR)
[ ] 7. Tạo ecosystem_market từ ecosystem_token
→ Link tokens có sẵn với cặp trading
[ ] 8. Seed investment_plan (3-5 gói)
→ Gói Starter (30 ngày, 5-8% APR)
→ Gói Growth (90 ngày, 8-15% APR)
→ Gói Premium (180 ngày, 15-25% APR)
[ ] 9. Kiểm tra và fix settings API endpoint
→ Xem tại sao /api/settings chỉ trả 7 records thay vì 148
→ Có thể đang join với bảng khác hoặc filter bởi group
🟡 MEDIUM — Cần làm trong 1 tuần
[ ] 10. Seed announcements (5 announcements GVI)
→ Chào mừng, KYC, eKYC, Nạp/Rút VND, Bảo hiểm
[ ] 11. Seed slider (5 slides)
→ Hero banners với branding GVI
[ ] 12. Seed pages (About, Terms, Privacy)
→ Nội dung pháp lý tiếng Việt
[ ] 13. Upload logo và favicon GVI
→ frontend/public/img/logo.png
→ frontend/public/favicon.ico
[ ] 14. Tạo social icon files
→ frontend/public/img/social/facebook.svg
→ frontend/public/img/social/telegram.svg
→ frontend/public/img/social/youtube.svg
→ frontend/public/img/social/twitter.svg
[ ] 15. Cập nhật NEXT_PUBLIC metadata trong .env
→ NEXT_PUBLIC_SITE_NAME="GVI Network"
→ NEXT_PUBLIC_SITE_URL="https://goldvninvest.online"
🟢 LOW — Tối ưu dài hạn
[ ] 16. Cấu hình forex plans và durations
[ ] 17. Cấu hình ICO offerings
[ ] 18. Setup P2P payment methods
[ ] 19. Tạo NFT categories
[ ] 20. Cấu hình MailWizard templates
[ ] 21. Setup Knowledge Base (FAQ)
[ ] 22. Cấu hình Trading Bot strategies
[ ] 23. Setup Copy Trading leader requirements
[ ] 24. Cấu hình Ecommerce categories
[ ] 25. Enable Hummingbot connector
KỊCH BẢN THÍ ĐIỂM VẬN HÀNH — THỊ TRƯỜNG VIỆT NAM
Giai Đoạn 1: MVP (Tháng 1-2)
Mục tiêu: Site hoạt động đầy đủ, ổn định
─────────────────────────────────────────
✅ Settings đầy đủ (148 keys)
✅ Landing page tiếng Việt
🔴 Fix lỗi role_permission (CRITICAL)
🔴 Fix settings API cache
🟠 Binary trading hoạt động
🟠 Staking pools
🟠 Investment plans
🟡 Logo + Branding GVI
🟡 Announcement + Slider
Giai Đoạn 2: Beta (Tháng 3-4)
Mục tiêu: Mở cửa cho beta users, KYC
─────────────────────────────────────────
→ eKYC integration (C06 Bộ Công An)
→ Nạp VND qua ngân hàng (Gateway)
→ Spot trading đầy đủ (16 cặp)
→ Binary trading với GIV/VNL, BTC/USDT
→ Staking GIV token
→ Mobile responsive hoàn chỉnh
→ Support ticket system
Giai Đoạn 3: Launch (Tháng 5-6)
Mục tiêu: Ra mắt chính thức, marketing
─────────────────────────────────────────
→ Cấp phép vận hành (đang thẩm định)
→ Marketing Việt Nam (Telegram, Facebook)
→ Community building
→ Copy Trading (follow traders thành công)
→ Forex & Multi-Asset (đa dạng hóa toàn cầu)
→ NFT Marketplace
→ API public cho algorithmic trading
Giai Đoạn 4: Scale (Tháng 7+)
Mục tiêu: Mở rộng quy mô, đa dạng hóa
─────────────────────────────────────────
→ Tích hợp Hummingbot (market making)
→ P2P Exchange (trao đổi trực tiếp VND)
→ ICO platform (hỗ trợ dự án mới)
→ Mobile app (iOS + Android)
→ Multi-language marketing (EN, KO, JP)
→ API ecosystem cho developers
→ Listing GIV trên sàn ngoài
TÓM TẮT TRẠNG THÁI HIỆN TẠI
Hạng mục
Tiến độ
Frontend code (CSS, Components)
✅ 100% — Y hệt demo.mashdiv.com
Backend API framework
✅ 95% — Cùng codebase
Database schema
✅ 100% — Đầy đủ bảng
Settings (148 keys)
✅ 100% — Đã seed
Landing page content VN
✅ 100% — Đã seed
Extensions (21/21)
✅ 100% — Tất cả active
Role permissions
❌ 0% — CRITICAL FIX NEEDED
Binary markets/durations
❌ 0% — Cần seed
Staking pools
❌ 0% — Cần seed
Investment plans
❌ 0% — Cần seed
Ecosystem markets
❌ 0% — Cần tạo
Announcements/Slider
❌ 0% — Cần seed
Logo/Branding assets
⚠️ 50% — Cần upload
Settings API cache
❌ Bug — Trả 7/148 settings
Tổng thể
~55%
Ưu tiên số 1: Fix role_permission seed + Settings API cache Ưu tiên số 2: Seed binary_duration + staking_pool + investment_plan Ưu tiên số 3: Enable exchange provider + ecosystem markets
Báo cáo được tạo tự động từ phân tích live hệ thống — 2026-07-20 GVI Network — Gold VN Invest — Sàn giao dịch tài sản số cho người Việt