Synaplan
开源 AI 软件平台,面向企业:自托管 AI 代理,符合 GDPR 的聊天机器人小部件,RAG 知识库,WhatsApp 与 Outlook AI,MCP,多模型路由。支持 Docker、Kubernetes 或在 Germ 托管。
AI 翻译
尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Grevya's employee portal — HRIS, Performance, Exit, Leave, Attendance, Payroll, Reimbursement, Learning, Recruit, Directory, HR Helpdesk, Declarations and an HR Admin console.
Stack: Next.js 16 (App Router) · React 19 · Tailwind CSS v4 · Supabase (Postgres, Auth, Storage, Row Level Security).
Requirements: Node 20+, Docker (OrbStack / Docker Desktop).
npm install
npm run db:start # local Supabase on ports 554xx (Studio: http://127.0.0.1:55423)
npm run seed # demo organisation (add -- --reset to wipe & reseed)
npm run dev # http://localhost:3100
Demo logins (password Grevya@123): [email protected] (HR admin), [email protected] (manager), [email protected] (employee). Every seeded employee can sign in with <firstname>@grevya.com.
npx supabase login
npx supabase link --project-ref <your-project-ref>
npx supabase db push # applies supabase/migrations/*
.env.local (see .env.example):
NEXT_PUBLIC_SUPABASE_URL=https://<ref>.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=<anon / publishable key>
SUPABASE_SERVICE_ROLE_KEY=<service role key> # server only
npm run seed) or just reference data + your first HR admin:
[email protected] ADMIN_PASSWORD='choose-one' ADMIN_NAME='Your Name' npm run seed -- --minimal
<your-url>/auth/callback to redirect URLs (used by password reset)..env.local already points at the hosted project oxhhwasktpgxwccwbypa (region ap-southeast-2) and includes SUPABASE_DB_URL, so:
npm run dev # app on http://localhost:3100 using the hosted DB
set -a; . ./.env.local; set +a
npm run db:push # apply any new migrations to the hosted DB
npm run smoke -- [email protected] # request every page as a role (dev server must be running)
The purple Gia button (bottom-right) answers HR questions: leave balance, holidays, payslips, attendance, pending requests, policies and FAQs, and where to find any page. It only reads data the signed-in person is already allowed to see.
ANTHROPIC_API_KEY to .env.local (and your host's environment) to switch on AI answers powered by Claude (claude-opus-5-5 by default; override with ASSISTANT_MODEL). Each question costs a small amount of API usage.Security is enforced in the database (Row Level Security + triggers), not just the UI:
role = 'hr_admin') see and manage everything.HR adds people in HR Admin → Employees and can create their login there. Anyone who signs up with an email that matches an employee record is linked automatically.
supabase/migrations/ schema, RLS policies, workflow triggers
scripts/seed.mts demo / minimal seed
src/proxy.ts session refresh + auth redirect
src/lib/ supabase clients, auth helpers, nav map, utils
src/components/ui/ UI kit
src/components/shell/ header, sidebar flyouts, search, notifications
src/app/(portal)/<module> one folder per module (pages, actions.ts, _components)
docs/CONVENTIONS.md coding conventions