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