尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗A full-stack Food Safety Management System (FSMS) built with Next.js 14, PostgreSQL, and Prisma ORM.
| Layer | Technology |
|---|---|
| Framework | Next.js 14 (App Router) |
| Database | PostgreSQL |
| ORM | Prisma |
| Authentication | NextAuth.js (JWT sessions) |
| Styling | Tailwind CSS |
| Language | TypeScript |
npm install
cp .env.example .env.local
Edit .env.local with your database credentials:
DATABASE_URL="postgresql://postgres:password@localhost:5432/julian_foods_fsms"
NEXTAUTH_SECRET="your-32-char-secret"
NEXTAUTH_URL="http://localhost:3000"
npm run db:push # Create tables from schema
npm run db:seed # Seed with demo data
npm run dev
| Role | Password | |
|---|---|---|
| Admin | [email protected] | admin123! |
| Supervisor | [email protected] | supervisor123! |
| Operator | [email protected] | operator123! |
| Feature | Operator | Supervisor | Admin |
|---|---|---|---|
| View & fill forms | ✅ | ✅ | ✅ |
| Create/edit forms | ❌ | ✅ | ✅ |
| View tasks | Own | All | All |
| Create tasks | ❌ | ✅ | ✅ |
| Update task status | Own | All | All |
| Create records | ✅ | ✅ | ✅ |
| Archive records | ❌ | ✅ | ✅ |
| Manage users | ❌ | View | Full |
| System settings | ❌ | ❌ | ✅ |
src/
├── app/
│ ├── (auth)/ # Login & Register pages
│ ├── (dashboard)/ # Dashboard, Forms, Tasks, Records
│ ├── (admin)/ # Admin-only pages
│ └── api/ # REST API routes
├── components/
│ ├── admin/ # User management components
│ ├── forms/ # Dynamic form renderer
│ ├── layout/ # Sidebar, Header, Providers
│ ├── records/ # Record management
│ ├── tasks/ # Task components
│ └── ui/ # Reusable UI (Modal, Badge, Toast, etc.)
└── lib/
├── auth.ts # NextAuth configuration
├── prisma.ts # Prisma client singleton
└── utils.ts # Helpers (formatting, colors)
prisma/
├── schema.prisma # Database schema
└── seed.ts # Demo data seeder
| Method | Route | Description | Min Role |
|---|---|---|---|
| POST | /api/users/register | Register new user | Public |
| PATCH | /api/users/[id] | Update role/status | Admin |
| GET | /api/forms | List forms | Any |
| POST | /api/forms | Create form | Supervisor |
| GET | /api/forms/submissions | List submissions | Any |
| POST | /api/forms/submissions | Submit form | Any |
| GET | /api/tasks | List tasks | Any |
| POST | /api/tasks | Create task | Supervisor |
| PATCH | /api/tasks/[id] | Update task status | Assignee/Supervisor |
| GET | /api/records | List records | Any |
| POST | /api/records | Create record | Any |
| DELETE | /api/records/[id] | Archive record | Supervisor |