Synaplan
기업을 위한 오픈소스 AI 플랫폼
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
Operations workspace for an expert network: screening, matching, staffing, work review and payment export, with human approval gates. Next.js + Postgres job queue.
README 전체를 불러오는 중입니다.
README 전문 보기 ↗An operations workspace for running an expert network end to end: sourcing and screening people, staffing them onto client projects, reviewing their work and preparing payment, with a human sign-off at every consequential step.
Live demo: https://web-production-09e7e.up.railway.app — opens on the
public, read-only /demo
page (no login). The applicant side is at
/apply/opportunities.
Demo runs on synthetic data; email is simulated and no money moves.
rules-v1) that shows why each expert was ranked or excluded.Stack: Next.js 15 (App Router) · React 19 · TypeScript · Prisma · PostgreSQL 16 · Tailwind 4 · Vitest · Playwright · deployed on Railway (web + worker + Postgres).
npm install && cp .env.example .env
npm run db:up && npm run db:migrate && npm run db:generate && npm run db:seed
npm run dev # web on http://localhost:3000
npm run worker # background worker, in a second terminal
The core lifecycle:
application → screening → human qualification → onboarding → operator
verification → invitation → acceptance → availability → staffing assignment →
work submission → human review → payment preparation → export → offboarding
Routine coordination is automated. Consequential decisions are not: ten named approval gates require a signed-in human, and every one is recorded against the operator who made it. There are no paid APIs and no language models; matching is deterministic rules.
| Tool | Version used | Notes |
|---|---|---|
| Node.js | 20.11 or newer (built on 24.1) | |
| Docker | any recent release | Only used to run PostgreSQL |
| PostgreSQL | 16 | Supplied by docker compose |
git clone <this repository>
cd expertops
npm install
cp .env.example .env # every default points at a local service
npm run db:up # starts PostgreSQL on host port 5433
npm run db:migrate # applies prisma/migrations
npm run db:generate # generates the Prisma client
npm run db:seed # loads repeatable synthetic data
npm run db:up publishes PostgreSQL on 5433, not 5432, so it does not
collide with a PostgreSQL you may already run locally. It creates three
databases: expertops for development, expertops_test for the test suite, and
expertops_e2e for the browser suite. The two test databases are truncated on
every run; the development one is never touched by a test.
To point at your own PostgreSQL instead, set DATABASE_URL, TEST_DATABASE_URL
and E2E_DATABASE_URL in .env and skip npm run db:up. The guard in
src/lib/database-safety.ts will refuse any name it does not recognise as a
test or end-to-end database, which is deliberate; see
Test database safety.
To run the browser suite you also need its browser once:
npx playwright install chromium
The application is two processes. Run them in separate terminals.
# terminal 1 — web application on http://localhost:3000
npm run dev
# terminal 2 — background worker (job queue + scheduler)
npm run worker
Then open http://localhost:3000 and sign in with one of the demo credentials.
The worker is not optional. Invitations are queued by the UI and sent by the
worker, so without it invitations stay in DRAFT and the simulated outbox never
drains. The Worker screen in the app shows queue depth and schedule state.
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗