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.
Create orders, match delivery tickets, and ingest invoices to verify accounts payable
AI summary · README
FinanceTypeScript · JavaScriptGitHub @Automantics-CanadaOnlineOwner 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
Automantics-Canada/Cambridge-Garden-Centre
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Cambridge Garden Centre - AP Verification System
Overview
The CGC AP Verification System automates the ingestion, matching, and verification of Accounts Payable (AP) documents. It provides an end-to-end pipeline that handles order creation, ticket OCR parsing and matching, and invoice ingestion via email to reduce manual AP input and ensure pricing accuracy.Read the full README ↗#CGC
The CGC AP Verification System automates the ingestion, matching, and verification of Accounts Payable (AP) documents. It provides an end-to-end pipeline that handles order creation, ticket OCR parsing and matching, and invoice ingestion via email to reduce manual AP input and ensure pricing accuracy.
The system operates across three main data entities:
[email protected]).1. Order Ingestion (Spruce -> Database)
Order records. Duplicate SP ID rows trigger updates rather than errors.2. Ticket Arrival & OCR
OcrJob, and dispatches it to AWS Textract.3. Auto-Linking Engine
poNumber against existing Orders.LINKED and associated directly.UNLINKED queue awaiting manual AP review.4. Invoice Arrival & Matching
Invoice record.AnalyzeExpense) parses the invoice completely, extracting line items, quantities, and unit rates.LineItemFlag (e.g. RATE_MISMATCH).5. AP Dashboard Verification
AuditLog table ensuring accountability.├── backend/
│ ├── prisma/ # Database schemas & migrations
│ ├── src/
│ │ ├── modules/
│ │ │ ├── auth/ # Authentication
│ │ │ ├── invoices/ # Invoice endpoints, logic & OCR processing
│ │ │ ├── orders/ # Order ingestion logic
│ │ │ ├── supplier/ # Supplier logic
│ │ │ └── tickets/ # Ticket ingestion, Auto-linking & OCR logic
│ │ ├── services/ # File Storage and specialized AWS Textract logic
│ │ ├── middleware/ # Express route JWT protection
│ │ └── app.ts # Core router pipeline
├── frontend/
│ └── src/
│ ├── components/ # UI
│ ├── layouts/ # Dashboard layout shells
│ ├── pages/
│ │ └── dashboard/ # Invoices, Orders, Suppliers, Tickets
│ └── store/ # Redux toolkit
(Micro & Detailed Steps)
.env.AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, and AWS_REGION configured either locally or in .env for Textract to work.cd backend && npm run devcd frontend && npm run devhttp://localhost:5173). Login using your test ADMIN credentials.Supplier. Take note of the id. Add a NegotiatedRate object for this supplier targeting product "Gravel" with rate 15.00.sample_orders_3.csv) containing an order with poNumber = PO-9999 attached to the supplier.POST /api/order/import or the frontend if available.POST /api/ticket/whatsapp (with an image file in form-data). Ensure the image contains the text "PO-9999".Ticket table.status: "LINKED" and linkedOrderId successfully populated automatically.POST http://localhost:8080/api/invoice/mock-emailfile: Attach a visual mock Invoice PDF.fromEmail: [email protected]subject: Invoice #12345 AttachedGET http://localhost:8080/api/invoice request.STATUS = PENDING_REVIEW. Inspect the lineItems property. The matching engine should have assigned RATE_MISMATCH, OK, or NO_ORDER depending on what Textract detected vs your Negotiated Rate.DISPUTED.AuditLog table: SELECT * FROM "AuditLog";