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.
Evidence-based invoice review for finance teams. Flags anomalies; people make the decisions.
FinanceTypeScript · JavaScriptGitHub @ObaidullahShahzadOnlineOwner 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.
Evidence-based invoice review for finance teams. Extracts invoice fields, runs deterministic checks
(duplicates, vendor and bank-detail mismatches, unusual amounts, arithmetic), and explains the findings.
It flags anomalies; people make the decisions. Nothing is approved, rejected or paid automatically.
Stack: Next.js 16 (App Router) · TypeScript · Tailwind CSS 4 · Firebase Auth / Firestore / Storage ·
Ollama (local AI) · Zod · Recharts · three.js (react-three-fiber) · Lucide icons · Vitest
Runs entirely locally with the Firebase emulators. Requires Node 20+ and Java 17+.Read the full README ↗Evidence-based invoice review for finance teams. Extracts invoice fields, runs deterministic checks (duplicates, vendor and bank-detail mismatches, unusual amounts, arithmetic), and explains the findings. It flags anomalies; people make the decisions. Nothing is approved, rejected or paid automatically.
Stack: Next.js 16 (App Router) · TypeScript · Tailwind CSS 4 · Firebase Auth / Firestore / Storage · Ollama (local AI) · Zod · Recharts · three.js (react-three-fiber) · Lucide icons · Vitest
Runs entirely locally with the Firebase emulators. Requires Node 20+ and Java 17+.
npm install
npm run emulators # terminal 1 — Auth + Firestore emulators (uploads go to ./.data)
npm run dev:emulator # terminal 2 — app on http://localhost:3000
Create an account on the sign-in page, then use Load synthetic demo data on the dashboard.
Upload the fictional PDFs from the Upload invoice page ("Try a synthetic sample"), or regenerate them with npm run samples.
.env.example to .env.local and fill in the web config (Project settings → General) and the service-account values
(Project settings → Service accounts → Generate new private key). Never commit .env.local.STORAGE_DRIVER=local (files go to ./.data/uploads).firebase deploy --only firestore:rules,storage (all data access is server-side via the Admin SDK).npm run dev.AI_PROVIDER | Behaviour |
|---|---|
ollama (default) | Local model. ollama pull qwen2.5:3b (fits 8 GB Macs; ~25 s per call warm), then set OLLAMA_MODEL. Invoice text never leaves your machine. |
openrouter | Third-party API. Synthetic data only; the UI shows an "External AI provider" warning. |
none | Rules-only. Extraction uses a deterministic parser and summaries use templates. |
If the model is unreachable or returns invalid JSON, the app falls back to rules-only automatically and says so in the UI. The model never creates findings or scores: rules do. Numbers the model returns are accepted only if they appear in the document text.
src/lib/domain — pure, tested business logic: money (integer minor units), normalisation, rules engine, scoring, review state machine, analytics.src/lib/server — server-only: Admin SDK, repositories, storage, AI providers, analysis pipeline, seed data.src/app/api — Route Handlers with a { data, error } envelope, Zod validation and ownership checks on every request.src/app/(app) — Server Components for pages; client components only where interaction needs them.invoices (+ findings, runs subcollections), vendors, auditEvents (append-only), users.npm test · npm run typecheck · npm run lint · npm run build · npm run samples
Scores are review indicators, not fraud probabilities. Analysis runs in-process after the response (no queue), history comparison loads the user's invoices into memory (fine to a few thousand), scanned PDFs without a text layer need to be uploaded as images for OCR, Word files must be .docx (not legacy .doc or macro-enabled .docm), and access is per-user rather than per-organisation. See Part B of the implementation plan for the production roadmap.