Skip to content

Latest commit

 

History

History
249 lines (176 loc) · 5.49 KB

File metadata and controls

249 lines (176 loc) · 5.49 KB

💰 Fintrack

Fintrack is a privacy-first, self-hostable personal finance tracker built by Sannty. Designed for individuals who want to take full control of their income, expenses, budgets, and financial goals without relying on third-party services.

[Self Host] Admin Credentials (change me!)

URL: http://localhost:5173

email: admin@example.com
password: fintrack

Screenshot

screenshot

🚀 Features

  • 📊 Track income and expenses with ease
  • 🧾 Add custom categories and tags
  • 📅 View transactions by day, week, or month
  • 📈 Budget planning and progress tracking
  • 🔒 100% self-hosted – your data, your server
  • 📦 Export data as CSV or JSON
  • 👤 Multi-user support (optional)
  • 🌗 Light/Dark mode UI
  • 📱 Responsive design (mobile + desktop)
  • 🔌 API-first architecture
  • 🧱 /api/v1/finance/* finance domain with double-entry ledger, envelope budgeting primitives, reports, exports, imports, and encrypted backup bundles

🛠️ Tech Stack

📱 Web (Frontend)

  • Framework: React 18
  • Styling: TailwindCSS
  • State Management: Zustand
  • Build Tool: Vite
  • Package Manager: pnpm

🔧 API (Backend)

  • Framework: Django + Django REST Framework
  • Database: PostgreSQL
  • Package Manager: Poetry
  • Authentication: JWT-based

🐳 Infrastructure

  • Containerization: Docker & Docker Compose
  • Development: Hot-reload enabled for both frontend and backend

📁 Project Structure

fintrack/
├── api/                # Django backend
│   ├── app/            # Django project settings
│   ├── pft/            # Main Django app
│   └── manage.py       # Django CLI
├── web/                # React frontend
│   ├── app/            # Application source
│   ├── public/         # Static assets
│   └── schema/         # API schema
└── README.md

🏁 Getting Started

📋 Prerequisites

🔧 Setup Instructions

Option 1: Using Docker (Recommended)

# Clone the repository
git clone https://github.com/ashishkapoor/fintrack.git
cd fintrack

# Copy environment files
cp api/.env.example api/.env
cp web/.env.example web/.env

# Start the services
docker compose up --build

The application will be available at:

Option 2: Manual Setup

  1. Clone the repository:
git clone https://github.com/ashishkapoor/fintrack.git
cd fintrack
  1. Setup API (Backend):
cd api

# Install poetry if not already installed
curl -sSL https://install.python-poetry.org | python3 -

# Install dependencies
poetry install

# Setup environment variables
cp .env.example .env

# Run migrations
poetry run python manage.py migrate

# Start the development server
poetry run python manage.py runserver
  1. Setup Web (Frontend):
cd web

# Install dependencies
pnpm install

# Setup environment variables
cp .env.example .env

# Start the development server
pnpm dev

⚙️ Configuration

API Environment Variables

# api/.env
DEBUG=True
SECRET_KEY=your_secure_secret_key
DATABASE_URL=postgres://user:password@localhost:5432/fintrack
ALLOWED_HOSTS=localhost,127.0.0.1
CORS_ALLOWED_ORIGINS=http://localhost:5173

Web Environment Variables

# web/.env
VITE_BASE_DOMAIN=http://localhost:8000

🧪 Tests

Bootstrap (first run)

make bootstrap

API Tests

make test-api

Full API Suite

make test-api-all

🧭 Feature Audit

The budgeting-core audit artifacts and prioritized roadmap live in:

  • docs/feature-audit/README.md
  • docs/feature-audit/feature-matrix.json
  • docs/feature-audit/prioritized-roadmap.md
  • docs/feature-audit/parity-report.md
  • docs/feature-audit/test-plan.md

Run the audit validator and parity report generator:

make feature-audit

📤 API Documentation

The API documentation is available at:

🧩 API Surface

  • /api/v1/*: core auth/profile and compatibility endpoints
  • /api/v1/finance/*: finance domain resources
    • budget-files, accounts, category-groups, categories, payees, tags
    • transactions, postings, scheduled-transactions, rules
    • budget-months, envelope-assignments, reports
    • exports, imports, backups

🤝 Contributing

Contributions, issues, and feature requests are welcome!
Feel free to fork and submit a pull request.


📄 License

MIT License © 2025 Sannty


💡 Inspiration

FinTrack was built to give privacy-conscious users a simple but powerful way to manage their finances independently, free of subscription fees or vendor lock-in.


🙌 Support

If you find FinTrack useful, consider giving a ⭐ on GitHub or sharing it with others!

Star History

Star History Chart