I built “Panamaram” — an Offline, Open-Source Personal Finance Tracker in Python

What My Project Does

Panamaram is a secure, offline personal finance tracker built in Python.
It helps you: – Track expenses & income with categories, notes, and timestamps
– Set bill and payment reminders (one-time or recurring)
– View visual charts of spending patterns and budget progress
– Export reports in PDF, XLSX, or CSV
– Keep your data private with AES-256 database encryption and encrypted backups
– Run entirely offline — no cloud, no ads, no trackers

Target Audience

Individuals who want full control over their financial data without relying on cloud services
Privacy-conscious users looking for offline-first personal finance tools
Python developers and hobbyists interested in PySide6, SQLCipher, encryption, and cross-platform packaging
Anyone needing a production-ready personal finance app that can also be a learning resource

Comparison

Most existing personal finance tools: – Require online accounts or sync to the cloud
– Contain ads or trackers
– Don’t offer strong encryption for local data

Panamaram is different because: – Works 100% offline — no data leaves your device
– Uses SQLCipher + AES-256 encryption for maximum privacy
– Is open-source and free to modify or extend
– Cross-platform and easy to install via pip or packaged executables

Tech Stack & Details

Language: Python 3.13
UI: PySide6 (Qt for Python)
Database: SQLite with optional SQLCipher
Encryption: pyAesCrypt (file-level) + cryptography.fernet (field-level)
PDF Reports: fpdf2 Packaging: pip for Windows/Linux/macOS & PyInstaller for Windows

Install via pip

bash pip install panamaram panamaram GitHub: https://github.com/manikandancode/Panamaram

I’m completely new to this and I’m still improving it — so I’d love to hear feedback, ideas, or suggestions. If you like the project, a ⭐ on GitHub would mean a lot!

submitted by /u/MrShortCircuitMan to r/Python
[link] [comments]


Commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *