Synaplan
开源 AI 软件平台,面向企业:自托管 AI 代理,符合 GDPR 的聊天机器人小部件,RAG 知识库,WhatsApp 与 Outlook AI,MCP,多模型路由。支持 Docker、Kubernetes 或在 Germ 托管。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Sistem Pengurusan & Serahan PPE - Next.js + Supabase
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
Aplikasi web untuk menguruskan permohonan dan serahan Peralatan Perlindungan Diri (PPE). Dibina dengan Next.js 16 (App Router) + TypeScript + Tailwind CSS + Supabase. Mula di sini: HANDOVER.md — dokumen serahan lengkap (seni bina, skema, peraturan bisnes, isu diketahui, cara guna semula). Jika README ini bercanggah dengan HANDOVER.md, HANDOVER.md yang betul.查看完整 README ↗
Aplikasi web untuk menguruskan permohonan dan serahan Peralatan Perlindungan Diri (PPE). Dibina dengan Next.js 16 (App Router) + TypeScript + Tailwind CSS + Supabase.
Mula di sini: HANDOVER.md — dokumen serahan lengkap (seni bina, skema, peraturan bisnes, isu diketahui, cara guna semula). Jika README ini bercanggah dengan HANDOVER.md, HANDOVER.md yang betul.
/ — cari nama, pilih PPE layak
mengikut jawatan, hantar permohonan. Staf baru daftar di /daftar./hr/dashboard — semak & lulus/tolak
permohonan, urus stok (ikut saiz), urus pekerja, lulus pendaftaran staf baru, lihat rekod,
muat turun PDF serahan, import/eksport Excel.supabase/migrations/0001_init.sql,
0002_stock_by_size.sql, 0003_employee_registrations.sql. (Jangan jalankan semula
0001 selepas 0002 — lihat HANDOVER.md §5.)Salin .env.local.example kepada .env.local dan isikan:
NEXT_PUBLIC_SUPABASE_URL=https://xxxxx.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=xxxxx
Kod tidak menggunakan service_role key; jangan letaknya dalam repo atau kod client.
npm install
npm run dev
Buka http://localhost:3000 untuk borang pekerja, dan http://localhost:3000/hr/login untuk log masuk HR.
Buka Supabase Dashboard → Authentication → Add user → masukkan emel &
kata laluan staf HR pertama. Log masuk di /hr/login menggunakan kelayakan itu.
.env.local di Vercel
Project Settings → Environment Variables.main akan auto-deploy.app/
├── page.tsx # Borang pekerja (awam)
├── hr/
│ ├── login/page.tsx # Log masuk HR
│ └── dashboard/
│ ├── layout.tsx # Shell + proteksi auth
│ ├── inbox/page.tsx # Papan pemuka + permohonan menunggu
│ ├── stock/page.tsx # Urus stok PPE
│ ├── employees/page.tsx# Pangkalan data pekerja
│ ├── records/page.tsx # Rekod & import data lama
│ └── settings/page.tsx # Tetapan syarikat
components/
├── worker/RequestForm.tsx
├── hr/{DashboardShell,RequestModal,ImportModal,KpiTile}.tsx
└── ui/{Button,Card,Badge,Modal}.tsx
lib/
├── supabase/{client,server,middleware}.ts
├── ppe-config.ts # Peraturan kelayakan PPE & saiz/kuantiti (§6.1–6.2)
├── pdf/{handover,downloadForRequest}.ts
└── excel/{employees,stock,records,shared}.ts
supabase/migrations/000{1,2,3}_*.sql
proxy.ts # Proteksi laluan /hr/dashboard (Next.js 16 "proxy")
SELECT daripada view employees_public (tanpa
No. IC) dan settings, serta INSERT pada requests dan employee_registrations.
Lihat HANDOVER.md §4 untuk model keselamatan penuh.approve_request (transaksi
atomik: tolak stok + tandakan status issued dalam satu transaksi Postgres).jsPDF) mengikut susunan tepat §6.5 —
tidak memaparkan lajur "Keluar"/"Baki Stok".