Synaplan
기업을 위한 오픈소스 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.