Synaplan
Open-source AI platform for companies: self-hosted AI agents, GDPR-compliant chatbot widget, RAG knowledge base, WhatsApp and Outlook AI, MCP, multi-model routing. Docker, Kubernetes or hosted in Germ
翻訳待ち
No updates detected yet. GitHub releases will appear here.
Loading the full README. The saved excerpt is shown below.
BNITRENDZ — Member Registration, QR Codes & Admin CRM A web app for managing a member network:Read the full README ↗
A web app for managing a member network:
/member/register. Anyone can sign up with a profile photo (taken with the camera or uploaded), their name, company, business category, contact details, special dates and social links. The member instantly gets a personal profile link and a QR code they can copy, share or download./member/[publicToken]. Only the fields a member filled in are shown, with their photo, tap-to-call, email and social links. Special dates (birthday, anniversary) are never shown publicly; only admins see them./admin. Signed-in admins get dashboard stats and full member CRUD, with database-backed search, sorting, pagination and QR codes.| Area | Choice |
|---|---|
| Framework | Next.js 16 (App Router, Route Handlers), React 19, TypeScript |
| Styling | Tailwind CSS 4, Lucide icons, Sonner toasts |
| Database | PostgreSQL + Prisma 7 (@prisma/adapter-pg) |
| Auth | NextAuth (Auth.js) v4, credentials provider, JWT session cookies |
| Validation | Zod 4, one schema shared by the browser and the server |
| QR codes | qrcode (PNG) |
| Tests | Vitest + Testing Library against a real test database |
pg_trgm extension available. It ships with standard PostgreSQL, Neon, Supabase and RDS.npm install
npm install also runs prisma generate (the postinstall script), which writes the Prisma client to lib/generated/prisma.
Copy the template and fill it in:
cp .env.example .env
| Variable | Required | Purpose |
|---|---|---|
DATABASE_URL | yes | PostgreSQL connection used by the app. In production this may be a pooled URL. |
DIRECT_URL | no | Direct (non-pooled) URL for migrations when DATABASE_URL is pooled, e.g. Neon's DATABASE_URL_UNPOOLED. |
TEST_DATABASE_URL | for tests | A separate database for npm test. It is wiped before every test. |
NEXTAUTH_SECRET | yes | Secret used to sign and encrypt sessions. Generate one with openssl rand -base64 32. |
NEXTAUTH_URL | dev only | http://localhost:3000 locally. Not needed on Vercel. |
NEXT_PUBLIC_APP_URL | yes* | Public base URL used in profile links and QR codes, e.g. https://your-domain.com (no trailing slash). *On Vercel it defaults to the project's production domain. |
APP_TIMEZONE | no | IANA timezone for the dashboard's "today" and "this month" counts and CRM dates, e.g. Asia/Karachi. Defaults to UTC. |
WHATSAPP_ACCESS_TOKEN | for WhatsApp | Permanent System User token for the WhatsApp Cloud API (whatsapp_business_messaging and whatsapp_business_management permissions). |
WHATSAPP_PHONE_NUMBER_ID | for WhatsApp | Phone number ID that messages are sent from (WhatsApp Manager → API setup). |
WHATSAPP_BUSINESS_ACCOUNT_ID | for WhatsApp | WhatsApp Business Account ID, used to list your approved message templates. |
ADMIN_NAME | no | Display name of the admin created by the seed. |
ADMIN_EMAIL | for seeding | Email of the admin created by the seed. |
ADMIN_PASSWORD | for seeding | Password of that admin (at least 8 characters). Only its scrypt hash is stored. |
.env files are git-ignored; only .env.example is committed.
NEXT_PUBLIC_APP_URLis baked into the browser bundle at build time. Rebuild after changing it, because every QR code is generated from it.
Create the databases (skip the test one if you won't run the tests):
createdb bnitrendz
createdb bnitrendz_test
Apply the migrations. The first migration also enables pg_trgm for fast search:
npx prisma migrate dev
Seed one admin and three sample members:
npx prisma db seed
The seed is safe to re-run:
ADMIN_EMAIL. Re-running with a new ADMIN_PASSWORD resets that admin's password.NODE_ENV=production.Warning: this deletes all data in DATABASE_URL.
npx prisma migrate reset --force
npx prisma db seed
npm run dev
Open http://localhost:3000. / redirects to the registration form. The admin CRM is at http://localhost:3000/admin.
There is no public sign-up for admins. The initial admin comes from the seed:
ADMIN_EMAIL and ADMIN_PASSWORD (and optionally ADMIN_NAME) in .env.npx prisma db seed./admin/login.To change the password, update ADMIN_PASSWORD and run the seed again. Passwords are hashed with scrypt (OWASP parameters, random salt) and never stored in plain text.
This is the beginning of the README. Read the rest at the original. Read the full README ↗