Modern personal finance analytics platform built with Quarkus and React.
- Privacy-focused personal finance management
- Multi-account transaction tracking
- Native support for major bank CSV formats (Chase, Discover, Bank of America, Citi, Amex)
- Extensible import framework for additional financial institutions
- Custom category creation to standardize transactions across different banks
- Advanced expense visualization and analytics
- Merchant spending pattern analysis
- Optimized for credit card and tap pay transaction analysis
- Clean, responsive user interface
You should download the transactions from My Financial Pictire
which contains more information than the data downloaded from account activities.
Citi and Amex don't provide a category for the transactions data, so you will need to preprocess the data which should have headers - Post Date, Transaction Date, Category, Description, Type, Amount, Memo
where Type
indicates if it is an expense or balance payment.
The csv format of transactions can be downloaded directly from activity page and be imported into Minance without any preprocessing.
Component | Technologies |
---|---|
Backend | Quarkus, Java 21+ |
Frontend | React, TypeScript, Vite |
Database | PostgreSQL |
Build | Maven |
Deployment | Docker-ready |
- Java 21+
- Node.js 18+
- Maven
- PostgreSQL
- Docker (optional)
Backend development server:
quarkus dev
Access points:
Standard build:
quarkus build --no-tests
Native executable (requires GraalVM):
quarkus build --native --no-tests
Multi-platform docker image build:
docker build --platform linux/amd64,linux/arm64 -f src/main/docker/Dockerfile.jvm -t minance:latest .
java -jar ./target/minance-1.0.0.jar
docker run -d --name minance -p 8080:8080 -v /path/to/your/data:/deployments/data:rw ydeng11/minance:latest
For a persistent deployment with PostgreSQL, create a docker-compose.yml
file:
version: "3.8"
services:
minance:
image: ydeng11/minance:latest
container_name: minance
ports:
- "8080:8080"
volumes:
- /your/path/to/minance/data:/deployments/data:rw
Start the application stack:
docker-compose up -d
Then you can access Minance
at http://localhost:8080.
minance/
├── src/
│ ├── main/
│ │ ├── java/ # Backend services and API
│ │ ├── resources/ # Configuration files
│ │ ├── webui/ # React frontend application
│ │ └── docker/ # Container configurations
│ └── test/ # Test suite
MIT License - See LICENSE for details