Oracle3
Open-source trading engine and MCP server for prediction markets. Fee-aware no-arbitrage trading across related contracts, live on Kalshi, Polymarket and Solana or on paper.
Accounting, invoicing, payroll and tax tracking for Nigerian companies. See cash flow and profit at a glance, get paid through your own Paystack or Flutterwave, run payroll with PAYE worked out, and s
FinanceTypeScript · CSSGitHub @hazansalamiOnlineOwner 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
Accounting, invoicing, payroll and tax tracking for Nigerian companies. See cash flow and profit at a glance, get paid through your own Paystack or Flutterwave, run payroll with PAYE worked out, and stay ahead of VAT, WHT and PAYE deadlines.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Accounting, invoicing, payroll and tax tracking for registered Nigerian companies (agencies, consultancies,
IT and B2B service firms), modelled on Wave's structure and filling the gaps Wave leaves in Nigeria.
Overview dashboard (Wave-style): action tiles, overdue invoices and bills, cash flow (inflow/outflow/net),
next 30 days (invoices due, bills, payroll, tax deadlines), profit & loss, expense breakdown, net income by year,
and payable/owing aging.Read the full README ↗Accounting, invoicing, payroll and tax tracking for registered Nigerian companies (agencies, consultancies, IT and B2B service firms), modelled on Wave's structure and filling the gaps Wave leaves in Nigeria.
Overview dashboard (Wave-style): action tiles, overdue invoices and bills, cash flow (inflow/outflow/net), next 30 days (invoices due, bills, payroll, tax deadlines), profit & loss, expense breakdown, net income by year, and payable/owing aging.
Customers pay the business directly: into its bank account, or through its own Paystack/Flutterwave account using the secret key the owner connects. BizBooks only creates the checkout link, verifies the result with the gateway, and updates the books. No funds pass through the platform, which keeps it outside payment-licensing territory. Get a Nigerian fintech lawyer to confirm this for your exact setup before launch. The only money BizBooks collects is its own Pro subscription, through the platform's own Paystack account.
Same as the ECDI portal: Next.js 16 (App Router, server actions) · React 19 · Prisma 7 + PostgreSQL
(Prisma Postgres on Vercel in production, prisma dev locally) · Tailwind CSS 4 · jose sessions · Resend for email ·
Vercel (hosting + daily cron).
npm install
npx prisma dev --name bizbooks --detach # prints a postgres:// URL
cp .env.example .env # paste the URL, generate the secrets as described inside
npx prisma migrate deploy
npm run db:seed # demo agency: [email protected], password = SEED_DEMO_PASSWORD
npm run dev
Without RESEND_API_KEY, emails are printed to the terminal instead of sent.
Schema changes locally: prisma dev serves a single template1 database, which breaks migrate dev's
shadow database. Generate migrations without one:
npx prisma migrate diff --from-config-datasource --to-schema prisma/schema.prisma --script > prisma/migrations/<timestamp>_<name>/migration.sql
npx prisma migrate deploy
Against a real Prisma Postgres database (not prisma dev), plain npx prisma migrate dev works; use a separate development database for that, never production.
Import the repo into Vercel. In the project, open Storage → Create Database → Prisma Postgres and pick the region closest to your functions (Frankfurt for Nigeria), then connect it to the project.
Open the database's Connect tab and copy the direct postgres:// connection string. Set it as DATABASE_URL in the project's Environment Variables (replace the prisma+postgres:// value Vercel may add by default; the pg adapter can't use it). Leave DIRECT_URL unset.
In Settings → Functions, set the function region to match the database region.
Set every other variable from .env.example. ENCRYPTION_KEY must never change after launch.
Create the tables once from your machine, pointing Prisma at production for that one command (a variable set in the shell wins over .env, and nothing is saved):
$env:DATABASE_URL="postgres://…"; npx prisma migrate deploy; Remove-Item Env:DATABASE_URLDATABASE_URL="postgres://…" npx prisma migrate deployRun it again after any release that adds a migration.
vercel.json schedules /api/cron/daily at 06:00 UTC (07:00 Lagos). Set CRON_SECRET in Vercel.
Verify a sending domain in Resend and set EMAIL_FROM.
For Pro billing, add PLATFORM_PAYSTACK_SECRET_KEY and set the Paystack webhook to https://<domain>/api/webhooks/platform.
| Step | Code |
|---|---|
Email/WhatsApp link /pay/<token> goes straight to the gateway checkout | src/app/pay/[token]/route.ts |
| Checkout started with the business's decrypted key | src/lib/checkout.ts, src/lib/gateways.ts |
| Customer returns: payment verified with the gateway, then recorded | src/app/api/pay/callback/route.ts |
| Webhook backup (signature checked with that business's key, then re-verified) | src/app/api/webhooks/{paystack,flutterwave}/[businessId] |
| Redirect and webhook both arriving is safe: unique gateway reference | Payment.reference @unique |
src/lib/constants.ts (PLANS) are placeholders (Free / Pro ₦12,500 a month).TAX (same file) were checked against published summaries of the Nigeria Tax Act 2025 in Sept 2026. Sources disagree on some thresholds, so have a tax adviser confirm them. The app labels all tax figures as estimates.