Javis OS
Javis OS는 기업가를 돕는 에이전시 AI로, 업무를 지원하고 함께 성장합니다
마을 계약자 등록 규정·수수료·보증·보험·만료일·제출 방법을 하나의 캘린더와 알림으로 관리해 허가일을 놓치지 않게 합니다
Every village's contractor registration rules — fees, bonds, insurance, expiry dates and how to submit — with one calendar and reminders so you never lose a permit day.
비즈니스GitHub @sammyzanny온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
Creates a store of all permit pricing for illinois contractors
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Multi-tenant SaaS for contractors working Chicago's south suburbs, where every village runs its own contractor registration with its own fee, bond, insurance minimums, expiry date and submission method. TownCert keeps the rules for every jurisdiction, computes each renewal from that town's actual rule, stores the supporting documents, and reminds the whole team before a village stops issuing permits.
Customer app (/app)
.ics feed for Google/Apple/Outlook.Public site — landing, pricing, and an SEO directory with one page per jurisdiction (/rules/[slug], JSON-LD, sitemap).
Admin (/admin, email allow-list) — overview with integration status, jurisdiction editor with full revision history, customer rule reports, customer list, email outbox.
Platform — Next.js 16 App Router, TypeScript, Tailwind v4, Drizzle ORM on Postgres (embedded PGlite locally, Neon/any Postgres in prod), Clerk auth with a cookie dev-login fallback, Stripe subscriptions with idempotent webhooks, Resend email with a DB outbox fallback, S3-compatible storage with local-disk fallback, cron endpoints secured by a shared secret, audit log on every write.
Every integration is optional at runtime: with zero keys the whole product works locally using the fallbacks, and each one switches to the real provider when its env vars appear.
npm install --legacy-peer-deps
npm run seed:demo # creates ./data/pglite (embedded Postgres), loads 37 jurisdictions + a demo company
npm run dev # http://localhost:3000
Sign in at /dev-login as [email protected]. To see /admin, run with [email protected].
npm test # 34 unit + integration tests (vitest, in-memory Postgres)
npm run build
./scripts/dev-server.sh & # production build in dev-auth mode on :3210
npx playwright test # 10 end-to-end scenarios covering the whole product
data/jurisdictions.json rules database seed (37 south-suburban jurisdictions)
drizzle/ SQL migrations (drizzle-kit)
scripts/seed.ts, migrate.ts deploy-time scripts
src/db/schema.ts Postgres schema (users, organizations, memberships, invitations,
jurisdictions + revisions, registrations, documents, reminders,
rule_reports, audit_events, email_outbox, stripe_events)
src/db/index.ts driver selection: PGlite (local) / postgres.js (DATABASE_URL)
src/lib/env.ts all env-driven config + "configured?" flags
src/lib/auth.ts Clerk or dev-cookie identity
src/lib/tenancy.ts current user/org context, roles, guards
src/lib/plans.ts tiers and limit enforcement
src/lib/billing.ts Stripe checkout, portal, webhook processing
src/lib/email.ts Resend/outbox + templates
src/lib/storage.ts S3/local file storage
src/lib/expiry.ts expiry & reminder-ladder math (pure, unit-tested)
src/lib/reminders.ts multi-org reminder engine, trial notices
src/lib/queries.ts org-scoped reads; admin-queries.ts for /admin
src/lib/actions/*.ts server actions (org, registrations, documents, billing, admin, dev-auth)
src/proxy.ts route protection (Clerk middleware or dev cookie)
src/app/ routes: public, (auth), onboarding, invite, app/*, admin/*, api/*
e2e/ Playwright suites
DEPLOY.md step-by-step production setup
See DEPLOY.md — Neon, Clerk, Stripe, Resend, R2/S3, Vercel, in that order, each with a confirmation step.
Rules were read from official municipal sources in September 2026 and change without notice. Fields no village publishes online are flagged "confirm by phone" in the UI and listed in the companion spreadsheet. Known conflicts: University Park bond ($5k web vs $10k form), Harvey bond ($20k form vs $10k code), Homewood fee (2017 form; village says fees rose May 2026). Use /admin to correct and stamp verified as you confirm each one.