尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
🏥 Hệ thống quản lý thiết bị y tế A comprehensive web application for managing medical equipment, built with modern technologies and designed for healthcare institutions in Vietnam. • Frontend: Next.js 15.3.3, React 18.3.1, TypeScript • Backend: Supabase (PostgreSQL) with custom RPC gateway • Authentication: NextAuth v4 with JWT strategy • UI Framework: Radix UI + TailwindCSS • State Management: TanStack Query (React Query) v5.81.5 • Deployment: Vercel檢視完整 README ↗
Vietnamese Medical Equipment Management System
A comprehensive web application for managing medical equipment, built with modern technologies and designed for healthcare institutions in Vietnam.
This project uses NextAuth v4 for authentication (NOT custom auth context).
authenticate_user_dual_modeglobal - Full system access across all tenantsadmin - Administrative access (legacy compatibility)to_qltb - Equipment management teamtechnician - Technical staff with department restrictionsuser - Basic user accessequipment_tenant_filter).
enabled gating and scoped caching.Create a .env.local file in the root directory:
# Supabase Configuration
NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key
SUPABASE_JWT_SECRET=your_supabase_jwt_secret
ZBS_INTERNAL_RPC_SECRET=your_dedicated_zbs_internal_rpc_secret
# NextAuth Configuration
AUTH_SECRET=your_nextauth_secret_key
NEXTAUTH_SECRET=your_nextauth_secret_key
AUTH_MIDDLEWARE_ENABLED=true # Non-production only. Ignored in production (route protection always on).
# Optional Feature Flags
NEXT_PUBLIC_AUTH_LEGACY_BRIDGE=false
# Clone the repository
git clone <repository-url>
cd qltbyt-nam-phong
# Install dependencies
npm install
# Apply database migrations
# (Run SQL files in supabase/migrations/ in your Supabase SQL editor)
# Start development server
npm run dev
# Development
npm run dev # Start dev server with Turbopack
npm run dev-https # Start dev server with HTTPS
# Building
npm run build # Standard Next.js build
npm run vercel:build # Build with Vercel CLI
# Production
npm start # Start production server
# Deployment
npm run vercel:pull # Pull Vercel project settings
npm run vercel:build # Validate Vercel output locally
# Development Tools
npm run lint # ESLint
npm run typecheck # TypeScript checking
src/
├── app/ # Next.js App Router
│ ├── (app)/ # Protected app routes
│ │ ├── dashboard/ # Dashboard page
│ │ ├── equipment/ # Equipment management
│ │ ├── maintenance/ # Maintenance planning
│ │ ├── repair-requests/ # Repair workflows
│ │ ├── transfers/ # Equipment transfers
│ │ ├── users/ # User management
│ │ └── layout.tsx # App layout with navigation
│ ├── api/ # API routes
│ │ ├── auth/ # NextAuth endpoints
│ │ └── rpc/ # Supabase RPC gateway
│ ├── globals.css # Global styles
│ ├── layout.tsx # Root layout
│ └── page.tsx # Login page
├── auth/ # NextAuth configuration
│ └── config.ts # NextAuth options
├── components/ # Reusable UI components
├── contexts/ # React contexts
├── hooks/ # Custom React hooks
├── lib/ # Utility libraries
├── providers/ # Provider components
├── types/ # TypeScript type definitions
└── middleware.ts # Next.js middleware
supabase/
├── migrations/ # Database migrations
└── functions/ # Edge functions (if any)
public/
├── manifest.json # PWA manifest
└── sw.js # Service worker
nhan_vien - User accounts and rolesdon_vi - Organizational units (tenants)thiet_bi - Equipment recordsyeu_cau_sua_chua - Repair requestske_hoach_bao_tri - Maintenance plansyeu_cau_luan_chuyen - Transfer requestsThe application includes Progressive Web App features:
DEPLOYMENT.md - Deployment instructionsHUONG_DAN_SU_DUNG.md - User manual (Vietnamese)CI-CD.md - CI/CD pipeline setupsupabase/migrations/ - Database schema changesWhen working with this project:
useSession() from next-auth/reactFor technical support or questions about the medical equipment management system, consult the project documentation or memory bank for detailed implementation notes.
Built with ❤️ for Vietnamese healthcare institutions