Sign inSign up

kartikey31choudhary/minted-backend

By kartikey31choudhary

•Updated 7 months ago

Minted personal finance API — Spring Boot 3, Java 17, MySQL, JWT auth & Flyway migrations.

Image
Languages & frameworks
Databases & storage
0

10K+

kartikey31choudhary/minted-backend repository overview

ā šŸ’° Minted — Personal Budget & Expense Management

A modern, full-stack personal finance application built with Angular 21 and Spring Boot 3. Track income, expenses, and transfers across multiple accounts with a beautiful dark/light themed UI.

šŸ”— GitHub: github.com/kartikeychoudhary/minted⁠ šŸ“– Docker Guide: DOCKER_README.md⁠ šŸ“ø Screenshots: screenshots/README.md⁠


⁠🐳 Images

ImageDescription
kartikey31choudhary/minted-backend⁠Spring Boot 3 API (Java 17, MySQL, JWT)
kartikey31choudhary/minted-frontend⁠Angular 21 app served via Nginx

ā šŸš€ Quick Start (No build tools needed)

1. Download the production compose file and example env:

curl -O https://raw.githubusercontent.com/kartikeychoudhary/minted/main/docker-compose.prod.yml
curl -O https://raw.githubusercontent.com/kartikeychoudhary/minted/main/.env.example
cp .env.example .env

2. Set your secrets in .env:

MINTED_JWT_SECRET=$(openssl rand -base64 64)
MINTED_JASYPT_PASSWORD=$(openssl rand -base64 32)
MINTED_ENCRYPTION_KEY=$(openssl rand -base64 32)

3. Start the stack:

docker compose -f docker-compose.prod.yml up -d

4. Open the app: http://localhost⁠

Default login: admin / admin — you will be forced to change the password on first login.


ā šŸ“Œ Pinning to a Specific Version

# In your .env file
MINTED_VERSION=v1.0.0

Or inline:

MINTED_VERSION=v1.0.0 docker compose -f docker-compose.prod.yml up -d

⁠✨ Features

  • Transaction management (income, expense, transfer) with AG Grid
  • Multi-account support with custom account types
  • Custom categories with Font Awesome icons
  • Dashboard with interactive charts (spending trends, category breakdown, top merchants)
  • Analytics overview with monthly summaries
  • Recurring transactions with cron-based scheduling
  • Bill splitting with friends (equal / unequal / share-based), settlement, CSV export
  • Bulk CSV import wizard with column mapping and job tracking
  • Credit card statement parser with LLM-powered extraction
  • Budget management with per-category limits
  • Notification system (bell badge, drawer, full page)
  • Admin panel (user management, scheduled jobs, server settings)
  • Dark / light mode with 6 accent color presets
  • JWT authentication with force-password-change flow
  • Mobile responsive layout

ā šŸ— Tech Stack

LayerTechnology
FrontendAngular 21, PrimeNG, AG Grid v35, Tailwind CSS 3, Chart.js
BackendJava 17, Spring Boot 3.2, Spring Security, Flyway
DatabaseMySQL 8.0
AuthJWT (jjwt 0.12.x), Jasypt AES-256 encryption
ProxyNginx (reverse proxy + SPA routing)

ā āš™ļø Environment Variables

See .env.example⁠ for all available options.

VariableRequiredDescription
MINTED_JWT_SECRETāœ… YesJWT signing key (min 256-bit base64)
MINTED_JASYPT_PASSWORDāœ… YesJasypt encryption password
MINTED_ENCRYPTION_KEYRecommendedAES-256 key for DB-stored API keys
MINTED_DB_*OptionalDatabase credentials (have defaults)
MINTED_VERSIONOptionalImage tag to pin (v1.0.0, default: latest)

ā āš ļø Known Issues (v1.0.0)

  • Mobile responsive layout is slightly buggy on some smaller screen sizes

ā šŸ“„ License

Proprietary — Kartikey Choudhary Ā© 2026

Tag summary

Content type

Image

Digest

sha256:db3feb6b9…

Size

174.1 MB

Last updated

7 months ago

docker pull kartikey31choudhary/minted-backend