Synaplan
开源 AI 软件平台,面向企业:自托管 AI 代理,符合 GDPR 的聊天机器人小部件,RAG 知识库,WhatsApp 与 Outlook AI,MCP,多模型路由。支持 Docker、Kubernetes 或在 Germ 托管。
AI 翻译
尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
Paravalves valve-manufacturing ERP
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗Unified ERP + CRM + Engineering + Inventory + Procurement + Projects + Finance for Paravalves. One relational source of truth from website inquiry through to project closure — no parallel Excel.
See BUILD_PLAN.md for the full architecture and phased specification.
| Layer | Technology |
|---|---|
| App | Next.js 15 (App Router) · React 19 · TypeScript (strict) |
| Database | PostgreSQL 16 (hand-written SQL migrations) |
| DB access | pg with a typed query/transaction helper |
| Auth | Custom session auth (scrypt + server-side sessions, HttpOnly cookie) |
| Authorization | Permission codes + roles, enforced server-side, org-scoped |
| Money | decimal.js (never floats); server recomputes all totals |
| Validation | Zod |
| Styling | Tailwind CSS + hand-built component primitives |
| Tests | Vitest |
| Dev DB | Docker Compose Postgres on port 55432 |
npm install
npm run db:up # start Postgres (docker) on :55432
npm run db:migrate # apply schema
npm run db:seed # roles, permissions, orgs, admin user, sample data
npm run dev # http://localhost:3000
Login:
[email protected] / admin123 — Super Admin (India + Spain)[email protected] / sales123 — Sales (India)| Command | Purpose |
|---|---|
npm run dev | Dev server |
npm run build / npm start | Production build / serve |
npm run typecheck | tsc --noEmit |
npm run lint | ESLint |
npm run test | Vitest unit tests |
npm run db:migrate / db:seed / db:reset | Database lifecycle |
POST /api/public/inquiry, hardened (shared secret, rate limit, honeypot, duplicate detection) → lead → assignment → follow-up task → notification.DRAFT→…→RELEASED approval; releasing a drawing clears the order's engineering gate.Concurrency-safe, per-org, per-year: LEAD-2026-000001, SO-2026-000012, INV-2026-000003, etc.
Generated by a single atomic upsert so two users can never receive the same number.
audit_logs and stock_movements are append-only at the database level (triggers / insert-only).version column) prevents silent overwrites → 409 CONFLICT.next.config.mjs; secrets only in .env (gitignored).Copy .env.example to .env. .env is generated with fresh secrets on first setup.
Key vars: DATABASE_URL, SESSION_SECRET, WEBSITE_INQUIRY_API_KEY, MAIL_DRIVER.