An open API service indexing awesome lists of open source software.

https://github.com/magnexis/expense-flow

๐Ÿ’ฐ ExpenseFlow โ€” Smart Expense & Finance Management built on Base44
https://github.com/magnexis/expense-flow

app dockerfile finance-management release

Last synced: about 5 hours ago
JSON representation

๐Ÿ’ฐ ExpenseFlow โ€” Smart Expense & Finance Management built on Base44

Awesome Lists containing this project

README

          

# ๐Ÿ’ฐ ExpenseFlow

![Version](https://img.shields.io/badge/version-v1.0.0-brightgreen?style=flat-square)
![License](https://img.shields.io/badge/license-MIT-blue?style=flat-square)
![Platform](https://img.shields.io/badge/platform-Base44-8b5cf6?style=flat-square)
![React](https://img.shields.io/badge/React-18-61dafb?style=flat-square&logo=react&logoColor=white)
![Tailwind CSS](https://img.shields.io/badge/Tailwind_CSS-3-38bdf8?style=flat-square&logo=tailwindcss&logoColor=white)
![Recharts](https://img.shields.io/badge/Recharts-2-22c55e?style=flat-square)
![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen?style=flat-square)

> Smart Expense & Finance Management โ€” a full-featured personal finance web app built on [Base44](https://base44.com).

๐Ÿ”— **Live Demo:** [expense-flow.base44.app](https://expense-flow.base44.app)

---

## ๐Ÿ“‹ Table of Contents

- [Overview](#overview)
- [Features](#features)
- [Tech Stack](#tech-stack)
- [Project Structure](#project-structure)
- [Pages & Routes](#pages--routes)
- [Entities](#entities)
- [Components](#components)
- [Settings Modules](#settings-modules)
- [Getting Started](#getting-started)
- [Docker](#docker)
- [Environment Variables](#environment-variables)

---

## Overview

ExpenseFlow is a production-ready personal finance dashboard that lets users track expenses, generate reports, create professional invoices, e-sign documents, and manage all their account settings โ€” all from a clean, modern UI.

---

## Features

| Feature | Description |
|---|---|
| ๐Ÿ“Š **Dashboard** | Real-time overview of spending, budget progress, category charts, and recent expenses |
| ๐Ÿ’ธ **Expense Tracking** | Add, edit, delete, search, and filter expenses by category and date |
| ๐Ÿงพ **Receipt OCR** | Upload a receipt image and auto-extract date, amount & merchant with AI |
| ๐Ÿ”” **Budget Alerts** | Automatic email alerts at 80% and 100% of your monthly budget |
| ๐Ÿ“ˆ **Reports** | Monthly spending trends, category breakdowns, and PDF export |
| ๐Ÿงพ **Invoices** | Create, send, and manage professional invoices with line items, tax, and discounts |
| โœ๏ธ **E-Sign** | Upload documents, draw signatures on canvas, place/resize them, and download signed files |
| โš™๏ธ **Settings** | 8-section settings panel: Profile, Security, Privacy, Notifications, Appearance, Preferences, Data, Connected Accounts |

---

## Tech Stack

- **Frontend:** React 18, Tailwind CSS, shadcn/ui, Lucide React, Recharts, Framer Motion
- **Backend:** Base44 (database, auth, integrations, backend functions via Deno)
- **PDF Generation:** jsPDF
- **Routing:** React Router v6
- **Data Fetching:** TanStack React Query
- **Canvas Signing:** HTML5 Canvas API

---

## Project Structure

```
โ”œโ”€โ”€ pages/
โ”‚ โ”œโ”€โ”€ Dashboard.jsx
โ”‚ โ”œโ”€โ”€ Expenses.jsx
โ”‚ โ”œโ”€โ”€ Reports.jsx
โ”‚ โ”œโ”€โ”€ Invoices.jsx
โ”‚ โ”œโ”€โ”€ ESign.jsx
โ”‚ โ””โ”€โ”€ Settings.jsx
โ”œโ”€โ”€ components/
โ”‚ โ”œโ”€โ”€ Layout.jsx
โ”‚ โ”œโ”€โ”€ expenses/
โ”‚ โ”‚ โ”œโ”€โ”€ ExpenseFormDialog.jsx
โ”‚ โ”‚ โ”œโ”€โ”€ ExpenseTable.jsx
โ”‚ โ”‚ โ”œโ”€โ”€ ReceiptUpload.jsx
โ”‚ โ”‚ โ”œโ”€โ”€ BudgetProgress.jsx
โ”‚ โ”‚ โ””โ”€โ”€ CategoryChart.jsx
โ”‚ โ”œโ”€โ”€ invoices/
โ”‚ โ”œโ”€โ”€ esign/
โ”‚ โ””โ”€โ”€ settings/
โ”œโ”€โ”€ entities/
โ”‚ โ”œโ”€โ”€ Expense.json
โ”‚ โ””โ”€โ”€ Invoice.json
โ”œโ”€โ”€ functions/
โ”‚ โ”œโ”€โ”€ checkBudgetAlert.js
โ”‚ โ”œโ”€โ”€ parseReceipt.js
โ”‚ โ””โ”€โ”€ setupGitHub.js
โ”œโ”€โ”€ Dockerfile
โ”œโ”€โ”€ docker-compose.yml
โ””โ”€โ”€ App.jsx
```

---

## Pages & Routes

| Route | Component | Description |
|---|---|---|
| `/` | `Dashboard` | Financial overview & KPIs |
| `/expenses` | `Expenses` | Full expense CRUD + receipt OCR |
| `/reports` | `Reports` | Charts & PDF reports |
| `/invoices` | `Invoices` | Invoice management |
| `/esign` | `ESign` | Document signing |
| `/settings` | `Settings` | Account settings hub |

---

## Entities

### `Expense`
| Field | Type | Required | Notes |
|---|---|---|---|
| `date` | string (date) | โœ… | Date of expense |
| `description` | string | โœ… | What it was for |
| `amount` | number | โœ… | Expense amount |
| `category` | enum | โŒ | One of 11 categories |
| `notes` | string | โŒ | Additional details |

### `Invoice`
| Field | Type | Required | Notes |
|---|---|---|---|
| `invoice_number` | string | โœ… | Unique invoice ID |
| `client_name` | string | โœ… | Recipient name |
| `issue_date` | string (date) | โœ… | Date issued |
| `due_date` | string (date) | โœ… | Payment due date |
| `status` | enum | โŒ | Draft / Sent / Paid / Overdue / Cancelled |

---

## Getting Started

1. Sign up at [base44.com](https://base44.com)
2. Fork or import this app
3. Invite users via Base44 dashboard
4. Set environment variables if needed

---

## Docker

```bash
# Build and run with Docker Compose
docker compose up --build

# Or build manually
docker build -t expense-flow .
docker run -p 3000:80 expense-flow
```

The app will be available at `http://localhost:3000`.

---

## Environment Variables

| Variable | Required | Description |
|---|---|---|
| `SENDGRID_API_KEY` | Optional | Custom transactional emails via SendGrid |

Set in: **Base44 Dashboard โ†’ Settings โ†’ Environment Variables**

---

## License

MIT ยฉ ExpenseFlow