Lalabase
Tickets, Doku, Zeiterfassung und Kundengespräche an einem Ort, durchsuchbar per KI. Für Softwarefirmen mit Kundenprojekten. Open Source: auf deinem eigenen Server oder in unserer Cloud in Deutschland.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
A donation-management platform for Ultimate Mission: donors give by card or bank (ACH), once or on a recurring schedule, and manage
their giving; staff manage donors, projects, tiers, expenses, reports and donor communications.
Built with Next.js 16 (App Router), TypeScript (strict), Tailwind CSS 4, Supabase (Postgres, Auth, Storage), Stripe, Resend and React Email.
Status: feature-complete draft, not yet verified against live services檢視完整 README ↗A donation-management platform for Ultimate Mission: donors give by card or bank (ACH), once or on a recurring schedule, and manage their giving; staff manage donors, projects, tiers, expenses, reports and donor communications.
Built with Next.js 16 (App Router), TypeScript (strict), Tailwind CSS 4, Supabase (Postgres, Auth, Storage), Stripe, Resend and React Email.
All seven planned phases are built. Nothing has been run against a real Supabase, Stripe or Resend account, because none were available during development. What is verified: lint, strict type-checking and the production build; 264 unit tests (payment, webhook, refund, report, consent, permission and validation logic); 58 browser tests (accessibility with axe, responsive layout, security headers, access control on public and auth pages). What is not: row-level security, the SQL functions, the campaign send engine, real payments and emails, and every screen behind sign-in.
Before real money moves, read docs/ACCEPTANCE.md (honest status of each acceptance criterion) and work
through docs/PRODUCTION_CHECKLIST.md. Legal text, EIN, photos, impact statistics and tier
descriptions are clearly marked placeholders that Ultimate Mission must supply.
npm install
cp .env.example .env.local # fill in values; never commit this file
npm run dev # http://localhost:3000
With no Supabase variables the public pages render and private areas redirect to sign-in. To exercise sign-in, donations and the admin portal you need a Supabase project and Stripe test keys:
.env.local. Apply
supabase/migrations/0001 to 0009 in order, then supabase/seed.sql (SQL editor or supabase db push).
Run supabase/tests/rls_isolation.sql and confirm every check prints PASS.
Authentication > URL configuration: add http://localhost:3000/auth/callback.INITIAL_ADMIN_EMAIL, run npm run admin:bootstrap, open the emailed invitation and choose a password.STRIPE_SECRET_KEY and NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY; enable Cards and ACH; run
stripe listen --forward-to localhost:3000/api/webhooks/stripe and put the printed whsec_... in STRIPE_WEBHOOK_SECRET.RESEND_API_KEY and EMAIL_FROM_ADDRESS. Without them transactional email is skipped and campaigns refuse to send.ALLOW_SAMPLE_SEED=yes npm run seed:sample (refuses live Stripe keys; see supabase/dev/remove-sample-data.sql to clear it from a scratch database).Environment variable names are in .env.example; what each is for is in docs/DEPLOYMENT.md.
| Command | Purpose |
|---|---|
npm run dev / build / start | Develop, build, serve |
npm run lint / typecheck | ESLint / TypeScript |
npm test | Unit tests |
npm run build && npm run test:e2e | Browser tests (run npx playwright install chromium once) |
npm run admin:bootstrap | Invite the first Super Admin |
npm run seed:sample | Load fake sample data (scratch databases only) |
| Document | Contents |
|---|---|
docs/DEPLOYMENT.md | Vercel, Supabase, Stripe and Resend setup; environment variables; cron; first admin; rollback |
docs/PRODUCTION_CHECKLIST.md | Everything to confirm before launch, including known open gaps |
docs/TESTING.md | Test suites, what they do and do not cover, Stripe test cards and bank accounts, manual verification steps |
docs/ACCEPTANCE.md | Each acceptance criterion with honest status and evidence |
docs/SECURITY_REVIEW.md | Findings fixed, controls verified, ranked open risks |
docs/BACKUP_RECOVERY.md | What is stored where, backups, restore and reconciliation, secret exposure |
docs/ARCHITECTURE.md | How each phase works: payments and webhooks, donor portal, admin, reports, communications; known limitations |
/dashboard; staff use /admin with six roles and 13 editable permissions. Guest donations are off (all donors sign in).src/app/ Pages, route handlers, webhooks, cron (App Router)
src/lib/ Business logic: donations, stripe, admin, reports, comms, auth (pure logic is unit-tested)
src/components/ Shared UI
src/emails/ React Email layouts
supabase/ migrations, seed.sql, tests/rls_isolation.sql, dev/remove-sample-data.sql
scripts/ admin bootstrap, sample data
tests/unit|e2e/ Vitest and Playwright suites
docs/ Documentation