Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

5F Template – Ứng dụng quản lý nội bộ

Ứng dụng web quản lý thiết bị / nhân sự và nghiệp vụ nội bộ: Trang chủ, Hệ thống (nhân viên, phòng ban, chức vụ, thông tin công ty, phân quyền, …), Hồ sơ. Giao diện tiếng Việt, dark mode; tông màu chủ đạo chọn trong menu người dùng (avatar).

Stack (tóm tắt)

  • Frontend: React (Vite) + TypeScript.
  • UI: Tailwind CSS + component nội bộ trong components/ui/ (phong cách tương tự shadcn, không cài registry shadcn/Radix để giữ kiểm soát bundle).
  • Dữ liệu: TanStack Query (server) + Zustand (client); React Hook Form + Zod.
  • Backend: Supabase (PostgreSQL + Auth); mặc định dev có thể dùng mock (VITE_DATA_SOURCE=mock).

Supabase

  1. Tạo project trên Supabase, lấy URLanon key.

  2. Copy .env.example.env và đặt VITE_SUPABASE_URL, VITE_SUPABASE_ANON_KEY, VITE_DATA_SOURCE=supabase.

  3. Sinh type TypeScript cho PostgREST (khuyến nghị khi schema ổn định):

    npm run types:supabase

    (Cần Supabase CLI và project đã supabase link, hoặc chỉnh script trong package.json dùng --project-id.)

  4. Bật RLS và policy phù hợp trên các bảng; client chỉ dùng anon key nên policy là lớp bảo vệ chính.

Hiệu năng (đã áp dụng trong code): client Supabase singleton + PKCE; TanStack Query staleTime / gcTime; repository giới hạn số dòng mỗi lần getAll (xem SUPABASE_DEFAULT_MAX_ROWS); select trong service chỉ lấy cột và quan hệ cần thiết. Dev: nút React Query Devtools góc dưới trái.

Yêu cầu

  • Node.js (khuyến nghị LTS)

Chạy dự án

  1. Cài đặt phụ thuộc:
    npm install
  2. Chạy máy chủ phát triển:
    npm run dev
  3. Mở trình duyệt theo địa chỉ in ra (thường là http://localhost:5173).

Scripts

Lệnh Mô tả
npm run dev Chạy dev server (Vite)
npm run build Build production (output trong dist/)
npm run preview Xem bản build (sau khi chạy npm run build)
npm run test Chạy test (Vitest)
npm run test:watch Chạy test ở chế độ watch
npm run types:supabase Sinh lib/supabase/database.types.ts (cần Supabase CLI)

Tài liệu

Cấu trúc chính

  • App.tsx – Router, theme, ngôn ngữ, route bảo vệ.
  • components/ – Layout, UI dùng chung (Button, Input, Table, …), shared (ConfirmDialog, ErrorState, …).
  • features/he-thong/ – Module Hệ thống: nhân viên, phòng ban, chức vụ, thông tin công ty, phân quyền; cấp bậc / chi nhánh chỉ là lookup (hooks + service), không có trang riêng.
  • lib/ – Tiện ích, lib/text (chuỗi giao diện), theme, sidebar, lib/query-keys, lib/supabase/.
  • locales/ – File JSON / gộp chuỗi (theo cấu hình dự án).
  • pages/ – Trang đơn (Home, Login, Profile, …).
  • store/ – Zustand (auth, UI, confirm).

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages