Bops
A team of AI bots that runs your business ops: inbox, pipeline, invoices, reports. Each one has its own computer, email and phone number, and remembers everything.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
正在加载完整 README。 以下为已保存的摘录。
Platformă SaaS multi-tenant: ONG-urile își fac cont și primesc acces la un CRM complet și un set de instrumente de fundraising (rapoarte, newsletter, contracte de sponsorizare/D177, pagini publice de strângere de fonduri cu donații prin Stripe), pe bază de abonament lunar. Platforma e funcțională de cap la coadă, live la fundraising-academy-one.vercel.app, cu izolare de tenant prin RLS (set_config transacțional, NU query-uri globale).查看完整 README ↗
Platformă SaaS multi-tenant: ONG-urile își fac cont și primesc acces la un CRM complet și un set de instrumente de fundraising (rapoarte, newsletter, contracte de sponsorizare/D177, pagini publice de strângere de fonduri cu donații prin Stripe), pe bază de abonament lunar.
Platforma e funcțională de cap la coadă, live la
fundraising-academy-one.vercel.app, cu izolare de tenant prin RLS
(set_config transacțional, NU query-uri globale).
Ce există:
price_data, fără Produse/
Prețuri pre-create în Dashboard) — atât pentru donațiile de pe paginile
publice de campanie, cât și pentru abonamentul ONG-ului la platformă
(checkout + webhook complet: plată reușită, expirare sesiune, reînnoire
abonament, refund/dispută, anulare/schimbare abonament). Fără cheile
Stripe reale completate, checkout-ul arată un mesaj grațios ("Plățile nu
sunt încă activate") în loc să proceseze plăți — vezi mai jos.Ce nu există încă: cont Stripe real (cheile sunt necompletate — singurul pas care mai lipsește ca plățile să fie efectiv procesate) și facturare anuală prin checkout (arătată azi doar informativ, fără flux propriu).
.env.local
(pornește de la .env.example).documentation/rls-setup.sql în SQL Editor-ul acelui proiect
— creează rolurile migrator/app_user și politicile RLS. Notează
parolele generate.DATABASE_URL (rolul app_user) și MIGRATOR_DATABASE_URL
(rolul migrator) în .env.local.npm installnpm run db:push (folosește MIGRATOR_DATABASE_URL din drizzle.config.ts)
ca să creeze tabelele din schemă.rls-setup.sql dacă ai adăugat tabele noi
după primul push (FORCE RLS + politici nu se creează automat de Drizzle).npm run devVezi secțiunea 5 din documentation/rls-setup.sql — creează 2 conturi de
test cu 2 organizații separate și confirmă manual că un query fără
app.current_org_id setat întoarce 0 rânduri, iar cu el setat la org A vezi
DOAR datele din org A.
github.com/office729/fundraising (2026-09-04).
Pe un laptop nou: git clone https://github.com/office729/fundraising.git.NETOPIA_API_KEY, NETOPIA_POS_SIGNATURE,
NETOPIA_PUBLIC_KEY (PEM al POS-ului, pentru verificarea IPN) și
NETOPIA_ENV (sandbox la test, live la producție). În contul Netopia,
URL-ul de notificare (IPN) e https://<domeniu>/api/netopia/ipn — îl trimite
aplicația la fiecare comandă, nu se setează manual. Fiecare plată = o lună de
acces (nu reînnoire automată); organizations.current_period_end decide./api/stripe/webhook/<slug-ul lui>.
Cheile se stochează criptate (AES-256-GCM) cu ORG_SECRETS_KEY din Vercel.0001_netopia_stripe_org (coloane Stripe pe organizations + tabelul
platform_payments) + politicile RLS din scripts/restore-rls.mjs — de aplicat pe
baza de producție înainte de deploy (npm run db:migrate, sau SQL-ul din
src/lib/db/migrations/).lib/billing/packages.ts — pachetele
fixe (trial/start/creștere/impact) includ toate instrumentele, diferă doar
prin cote; planul personalizat diferențiază per instrument, aplicat
efectiv prin orgHasToolAccess.