Skip to content

Commit d1e4718

Browse files
committed
setup guide readme
1 parent 9a6fc8b commit d1e4718

1 file changed

Lines changed: 123 additions & 10 deletions

File tree

README.md

Lines changed: 123 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -37,20 +37,14 @@ MatchFlow delivers real, measurable value by automating repetitive finance tasks
3737
2. [ Key Features](#key-features)
3838
3. [ Tech Stack](#tech-stack)
3939
4. [ Architecture](#architecture)
40-
5. [ Screenshots / Demo](#screenshots--demo)
40+
5. [ Screenshots](#screenshots)
4141
6. [ Getting Started](#getting-started)
4242
- [ Prerequisites](#prerequisites)
4343
- [ Installation](#installation)
4444
- [ Configuration](#configuration)
4545
- [ Running the App](#running-the-app)
46-
7. [ API Reference](#api-reference)
47-
8. [ Usage Examples](#usage-examples)
48-
9. [ Testing](#testing)
49-
10. [ Deployment](#deployment)
50-
11. [ Roadmap](#roadmap)
51-
12. [ Contributing](#contributing)
52-
13. [ License](#license)
53-
14. [ Contact / Support](#contact--support)
46+
7. [ License](#license)
47+
8. [ Contact / Support](#contact--support)
5448

5549

5650
<a id="key-features"></a>
@@ -332,7 +326,7 @@ _All inside the .NET API Gateway container_
332326
- Plain C# business entities: Invoice, PurchaseOrder, InvoiceLineItem, PurchaseOrderLineItem, ExceptionRecord, User
333327

334328

335-
329+
<a id="screenshots"></a>
336330
## Screenshots
337331
### Authentication
338332

@@ -378,3 +372,122 @@ Now you’re all set to run the auto-match and reconcile against your purchase o
378372
*Figure 6: The Auto-Match engine processes your invoice and then confirms a 100% match—every line item and the total perfectly aligned with your Purchase Order.*
379373

380374
Instant peace of mind knowing your invoice is exactly what you ordered.
375+
376+
377+
<a id="getting-started"></a>
378+
## Getting Started
379+
380+
Follow these steps to get MatchFlow up and running locally via Docker Compose.
381+
382+
---
383+
384+
### Prerequisites
385+
386+
#### Local Development Tools
387+
- **Docker Engine** ≥ 20.10
388+
- **Docker Compose** ≥ 1.29
389+
- A modern web browser (Chrome, Firefox, Safari, Edge)
390+
391+
#### Azure Resources
392+
Before running MatchFlow, you need to set up these Azure services:
393+
394+
- **Azure Blob Storage**
395+
- Create a storage account
396+
- Create a container for PDF storage
397+
- Get the connection string and container name
398+
399+
- **Azure Form Recognizer**
400+
- Create a Form Recognizer resource
401+
- Get the endpoint URL and API key
402+
403+
> **Note:** These Azure resources are required for PDF storage and OCR processing. You'll configure them in the `.env` file during installation.
404+
405+
---
406+
407+
### Installation
408+
409+
1. **Clone the repository**
410+
```bash
411+
git clone https://github.com/datpham0412/invoice-processor.git
412+
cd invoice-processor
413+
```
414+
415+
2. **Create environment file**
416+
417+
Copy or create `InvoiceProcessor.API/.env` with the following configuration:
418+
419+
```env
420+
# Database Connection
421+
CONNECTIONSTRINGS__DefaultConnection=Server=(localdb)\\MSSQLLocalDB;Database=InvoiceProcessorDev;Trusted_Connection=True;MultipleActiveResultSets=true
422+
423+
# Development Settings
424+
DISABLE_HTTPS_REDIRECT=true
425+
426+
AZUREBLOB__ConnectionString=
427+
AZUREBLOB__ContainerName=
428+
FORMRECOGNIZER__Endpoint=
429+
FORMRECOGNIZER__ApiKey=
430+
431+
# JWT Authentication
432+
JWT__Key=your-secret-key-here
433+
JWT__Issuer=matchflow
434+
JWT__Audience=matchflow-users
435+
JWT__ExpiresInMinutes=60
436+
```
437+
438+
---
439+
440+
### Configuration
441+
442+
- The Docker Compose network `invoice-net` connects both services.
443+
- **backend** (host 8080 → container 80) reads your `.env` and runs in Production mode.
444+
- **web** (host 3000 → container 80) uses `VITE_API_URL=http://backend/api`.
445+
446+
> **Note:** Populate the `AZUREBLOB__*` and `FORMRECOGNIZER__*` keys in your `.env` file with the Azure resource details you set up in the Prerequisites section.
447+
448+
---
449+
450+
### Running the App
451+
452+
From the project root:
453+
454+
```bash
455+
docker-compose up --build
456+
```
457+
458+
#### Additional Commands
459+
460+
**Run in background:**
461+
```bash
462+
docker-compose up --build -d
463+
```
464+
465+
**View logs:**
466+
```bash
467+
docker-compose logs -f
468+
```
469+
470+
**Stop services:**
471+
```bash
472+
docker-compose down
473+
```
474+
475+
476+
Once up, the frontend is available at:
477+
478+
> **[http://localhost:3000](http://localhost:3000)**
479+
480+
and the API listens on:
481+
482+
> **[http://localhost:8080](http://localhost:8080)**
483+
484+
---
485+
486+
#### Sample Startup Output
487+
488+
```text
489+
Attaching to backend-1, web-1
490+
web-1 | 2025/07/03 02:36:11 [notice] nginx/1.28.0
491+
backend-1 | info: Now listening on: http://[::]:80
492+
backend-1 | info: Application started. Press Ctrl+C to shut down.
493+
```

0 commit comments

Comments
 (0)