feat: add receipt upload API and target net10
Build MoneyMap image / build-and-push (push) Failing after 10s
Build MoneyMap image / build-and-push (push) Failing after 10s
This commit is contained in:
+16
-3
@@ -2,11 +2,11 @@
|
||||
|
||||
## Project Overview
|
||||
|
||||
MoneyMap is an ASP.NET Core 8.0 Razor Pages application designed for personal finance tracking. It allows users to import bank transaction CSV files, categorize expenses, attach receipt images/PDFs, and parse receipts using AI (OpenAI GPT-4o-mini Vision API).
|
||||
MoneyMap is an ASP.NET Core 10.0 Razor Pages application designed for personal finance tracking. It allows users to import bank transaction CSV files, categorize expenses, attach receipt images/PDFs, and parse receipts using AI (OpenAI GPT-4o-mini Vision API).
|
||||
|
||||
## Technology Stack
|
||||
|
||||
- **Framework**: ASP.NET Core 8.0 (Razor Pages)
|
||||
- **Framework**: ASP.NET Core 10.0 (Razor Pages)
|
||||
- **Database**: SQL Server with Entity Framework Core 9.0
|
||||
- **Libraries**:
|
||||
- CsvHelper (33.1.0) - CSV parsing
|
||||
@@ -1214,6 +1214,19 @@ EF Core DbContext managing all database entities.
|
||||
|
||||
## API Endpoints
|
||||
|
||||
### Receipt Upload API
|
||||
**Route:** `POST /api/receipts?transactionId={id}`
|
||||
|
||||
**Purpose:** Upload one receipt image or PDF, store it through `IReceiptManager`, and queue it for asynchronous parsing. Omit `transactionId` to upload an unmapped receipt; provide it to attach the receipt to an existing transaction.
|
||||
|
||||
**Request:** `multipart/form-data` with one required `file` field. The shared receipt service accepts JPG/JPEG, PNG, GIF, HEIC, and PDF files up to 10 MB; it validates their file signatures, calculates a SHA-256 hash, and returns duplicate warnings when applicable.
|
||||
|
||||
**Responses:**
|
||||
- `200 OK`: uploaded receipt metadata (`id`, file metadata, `parseStatus`, optional `transactionId`, and `duplicateWarnings`).
|
||||
- `400 Bad Request`: missing/invalid file, unsupported content, over-size upload, duplicate mapped receipt, or unknown transaction.
|
||||
|
||||
**Example:** `curl -X POST http://localhost:5010/api/receipts -F 'file=@receipt.png'`
|
||||
|
||||
### Financial Audit API
|
||||
**Route:** `GET /api/audit`
|
||||
|
||||
@@ -1818,7 +1831,7 @@ MoneyMap demonstrates a well-architected ASP.NET Core application with clear sep
|
||||
|
||||
**Last Updated:** 2026-02-11
|
||||
**Version:** 1.5
|
||||
**Framework:** ASP.NET Core 8.0 / EF Core 9.0
|
||||
**Framework:** ASP.NET Core 10.0 / EF Core 9.0
|
||||
|
||||
## Recent Changes (v1.5)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user