尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Automantics-Canada/Cambridge-Garden-Centre
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
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.查看完整 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";