Chuyển tới nội dung chính

VPPOS Admin — Tổng quan

VPPOS Admin là hệ thống quản trị dành cho nền tảng VPPOS, được xây dựng theo kiến trúc Micro-Frontend (MFE) với Vite Module Federation.

Công nghệ chính

Công nghệMục đích
React 18 + TypeScriptUI framework
Vite + Module FederationBuild tool + MFE runtime
pnpm workspacesPackage manager (monorepo)
TurborepoBuild orchestrator
Redux Toolkit + RTK QueryState management + API
React Hook Form + ZodForm + validation
Tailwind CSS v4Styling
dayjsDate/time utilities

Kiến trúc tổng thể

┌──────────────────────────────────────────────────────┐
│ Container (Host :8080) │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌───────────┐ │
│ │ Auth │ │Dashboard│ │Inventory│ │ Content │ │
│ │ :8082 │ │ :8081 │ │ :8084 │ │ :8083 │ │
│ └─────────┘ └─────────┘ └─────────┘ └───────────┘ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌───────────┐ │
│ │Analytics│ │Workforce│ │ CRM │ │Role-Perm │ │
│ │ :8085 │ │ :8089 │ │ :8093 │ │ :8086 │ │
│ └─────────┘ └─────────┘ └─────────┘ └───────────┘ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌───────────┐ │
│ │Sale Mgmt│ │E-Invoice│ │ Payment │ │ Setting │ │
│ │ :8087 │ │ :8091 │ │ :8092 │ │ :8088 │ │
│ └─────────┘ └─────────┘ └─────────┘ └───────────┘ │
│ │
│ @vppos/core (shared library) │
└──────────────────────────────────────────────────────┘

Các module

ModulePortMô tả
Container8080Host app — layout, sidebar, auth guard, MFE loader
Auth8082Đăng nhập, đăng ký, quên mật khẩu
Dashboard8081Tổng quan kinh doanh
Inventory8084Hàng hóa, kho hàng, sản phẩm
Content8083Tin tức, danh mục, banner
Analytics8085Báo cáo & phân tích
Workforce8089Quản lý nhân sự, chấm công
CRM8093Khách hàng, loyalty, thẻ thành viên
Role & Permission8086Phân quyền, gói đăng ký, chi nhánh
Sale Manage8087Quản lý bán hàng, đơn hàng
E-Invoice8091Hóa đơn điện tử
Payment8092Thanh toán, ngân hàng, ví điện tử
Setting8088Cài đặt hệ thống

Shared package

@vppos/core chứa toàn bộ UI components, hooks, utils, types, constants dùng chung. Mọi module đều import từ core — không duplicate code.

import { Button, Input, Modal } from "@vppos/core/ui/react";
import { useDebounce } from "@vppos/core/hooks";
import { toastUtils } from "@vppos/core/utils";