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.
Translation pending
Give hope. Empower women. Save lives. Support Ultimate Mission's community health workers.
Translation pending
BusinessTypeScript · PLpgSQLGitHub @AfterHoursStudiosOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
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 servicesRead the full 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