File size: 2,246 Bytes
5c16ca7
35420f5
 
5c16ca7
35420f5
 
 
 
 
 
 
 
 
 
 
 
 
5c16ca7
 
35420f5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
---
title: OmniParse AI
emoji: 📄
sdk: docker
colorFrom: blue
colorTo: blue
license: mit
tags:
  - invoice
  - ocr
  - ai
  - api
  - saas
  - automation
  - finance
  - billing
  - nextjs
---

## Overview

AI-powered invoice processing SaaS. Upload PDFs or images and extract vendor details, amounts, dates, and line items as structured data. Export to CSV, JSON, or Excel — or integrate via REST API.

## Features

- **Smart OCR Extraction** — AI-powered data extraction with high accuracy
- **Duplicate Detection** — Automatic flagging of potential duplicate invoices
- **AI Chat Assistant** — Ask questions about your invoices (Pro+)
- **Dashboard** — Upload, invoices, analytics, chat, export, profile, settings
- **Bank-Level Security** — Bcrypt passwords, HttpOnly cookies, rate limiting, activity logging
- **REST API** — Integrate with ERP systems (Pro+)
- **Multi-format Export** — CSV, JSON, Excel
- **Dark/Light Theme** — Smooth animated transition
- **Forgot Password** — Reset flow for logged-out users
- **Responsive** — Works on mobile and desktop

## Demo Account

- **Email:** `demo@omniparse.ai`
- **Password:** `demo1234`
- **Plan:** Pro (20 seeded invoices)

## Tech Stack

- **Framework:** Next.js 16 (App Router)
- **Language:** TypeScript
- **Styling:** Tailwind CSS 4 + shadcn/ui
- **Database:** SQLite via Prisma ORM
- **Auth:** Custom session-based (cookies)
- **Runtime:** Node.js 20 Alpine (Docker)

## Deployment

This Space uses a 3-stage Docker build:

1. **deps** — Install npm dependencies
2. **builder** — Generate Prisma client + `next build`
3. **runner** — Production standalone server on port 7860

The database is automatically initialized on first startup via `prisma db push`.

## API Endpoints

| Method | Path | Description |
|--------|------|-------------|
| POST | `/api/auth/login` | Login |
| POST | `/api/auth/signup` | Create account |
| POST | `/api/auth/logout` | Logout |
| GET | `/api/auth/me` | Current user |
| GET | `/api/invoices` | List invoices |
| DELETE | `/api/invoices` | Delete invoice |
| POST | `/api/auth/forgot-password` | Request reset code |
| POST | `/api/auth/reset-password` | Reset password with code |
| GET | `/api/health` | Health check |