https://github.com/iyehah/fatoore
web app creating and managing invoices with support for Mauritanian context (MRU, local payment methods such as Bankily, Seddad, Masrvi, BimBank ...
https://github.com/iyehah/fatoore
img invoices-generates mauritania payment-application payments pdf
Last synced: about 1 month ago
JSON representation
web app creating and managing invoices with support for Mauritanian context (MRU, local payment methods such as Bankily, Seddad, Masrvi, BimBank ...
- Host: GitHub
- URL: https://github.com/iyehah/fatoore
- Owner: iyehah
- License: mit
- Created: 2026-04-16T19:41:51.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2026-05-16T19:59:20.000Z (about 1 month ago)
- Last Synced: 2026-05-16T20:25:29.552Z (about 1 month ago)
- Topics: img, invoices-generates, mauritania, payment-application, payments, pdf
- Language: TypeScript
- Homepage: https://fatoore.vercel.app
- Size: 1.68 MB
- Stars: 3
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Create and manage professional invoices for sales, subscriptions, services, bookings, and installments through an intuitive dashboard, or generate high-quality PNG/PDF invoices via HTTP API for ERP, CRM, and automation systems. Fully customizable currency, branding, and payment methods.
> Fast, polished invoices for your business — in the browser or from your own system.

Installment • Orange • EN • Medium

Subscription • Green • EN • Medium

Service • Default • AR • Small

Sales • Blue • FR • Small
## How it fits your stack
```mermaid
flowchart LR
You[Your system or browser]
App[Fatoore web app]
Cap[Capture service]
You -->|GET /api/invoice| App
App -->|private| Cap
Cap --> App
App --> You
```
- **You** send invoice data as URL query parameters (or use the UI).
- The **web app** validates data and renders the invoice layout.
- A **capture service** (separate deployment) screenshots that layout and returns PNG/PDF.
Full diagrams and setup: **[doc/architecture.md](./doc/architecture.md)**
## Requirements
- **Node.js** 20+
- **Firebase** project (Authentication + Firestore) for the signed-in web UI
- **Capture service** for API export (headless Chromium; see [integration guide](./doc/integration-guide.md))
### Environment (web app)
```env
NEXT_PUBLIC_FIREBASE_API_KEY=…
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=…
NEXT_PUBLIC_FIREBASE_PROJECT_ID=…
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=…
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=…
NEXT_PUBLIC_FIREBASE_APP_ID=…
# API export (when using capture service)
INVOICE_API_BASE_URL=https://your-public-app-url
RENDER_SERVICE_URL=https://your-capture-service-url
RENDER_SERVICE_API_KEY=shared-secret-with-capture-service
```
## Quick start
```bash
npm install
npm run dev
```
Open [http://localhost:3000](http://localhost:3000) — sign in, add a business profile, create an invoice, preview and export.
**API playground:** [/developers/invoice-api](http://localhost:3000/developers/invoice-api)
## Documentation
| Doc | Description |
|-----|-------------|
| [doc/README.md](./doc/README.md) | Documentation index |
| [doc/api-reference.md](./doc/api-reference.md) | Endpoints + **full query parameter table** |
| [doc/branding-and-layout.md](./doc/branding-and-layout.md) | Logo, labels, fonts, colors, sizes |
| [doc/architecture.md](./doc/architecture.md) | System communication (diagrams) |
| [doc/integration-guide.md](./doc/integration-guide.md) | Production setup & best practices |
## Logo & labels (short)
| Concern | API / UI |
|---------|----------|
| Logo | `businessLogo` URL + `showLogo=true` |
| Label language | `lang=en` \| `ar` \| `fr` |
| Brand color | `color=default` \| preset \| `#hex`, optional `applyBorders=true` |
| Layout size | `size=small` \| `medium` \| `large` (aliases `s`, `m`, `l`, …) |
Details: [doc/branding-and-layout.md](./doc/branding-and-layout.md)
## License
See repository license file.