feat: add receipt upload API and target net10
Build MoneyMap image / build-and-push (push) Failing after 10s

This commit is contained in:
aj
2026-09-11 20:31:51 -04:00
parent 1cc0a355f2
commit 08e54a4d31
9 changed files with 160 additions and 151 deletions
+16 -3
View File
@@ -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)