Pecunia: Personal Finance Management 💸
Pecunia is a cross-platform personal finance management app built with Flutter. It enables users to effectively track their expenses, set budgets, visualize financial trends, and much more.
Features
- Transaction Tracking: Keep a record of all your income and expenses, each associated with a specific account.
- Budget Management: Set one-time or recurring budgets, with features supporting diverse and complex budgeting needs.
- Local-first Data: With a central database of transactions powered by drift (an SQLite wrapper).
- Visual Analytics: Visualize your financial data through charts and diagrams to better understand your spending habits.
Mockup and Design Showcase 📱
View the Figma Project File, or play around with the Figma Prototype (I made sure the animations look cute).
Development Roadmap 🚀
🏗️ Phase 1: Basic Features
(0.1.0
)
- [x] Simple authentication and integration with
supabase
.
- [x] Local database setup with
drift
.
- [x] Accounts creation, deletion, editing, and viewing.
- [x] Transaction creation, deletion, editing and viewing.
- [x] Transferring funds between accounts.
- [x] Multi-currency transactions.
- [x] Transaction categories.
- [ ] Basic UI capabilities (as in, similar looks and functionality to mockup)
- [ ] Guest/Local Account
🧑🏼💻 Phase 2: Advanced Features
(0.2.0
)
- [ ] Nested categories
- [ ] Simple timed budget creation, deletion, editing, and viewing.
- [ ] Implementing recurring budgets.
- [ ] Visual analytics and reports.
- [ ] Sub-Budgets (Multi-category budgeting).
(0.2.1
)
- [ ] UI Upgrade! (Turn it into what it should've looked like)
(0.2.2
) (possible)
- [ ] Implement custom backend,
pecunia-backend
😋 Phase 3: Quality of Life Improvements
- [ ] Fully customizable dashboard.
- [ ] Profile page with a cool looking pseudo-3d membership card.
- [ ] Budget exception handling (transactions that don't fit budget criterion, but still wants to be included in a budget.)
- [ ] Alerts, reminders, notifications, etc.
💨 Phase 4: Performance Optimization
- [ ] Whatever tuning I can do from here.
🔥 Future Capabilities
- [ ] Remote Sync.
- [ ] GPT4 (woo woo)?
- [ ] More interactive and advanced data visualization.
- [ ] Desktop apps? Mac and Windows or even Web?
Setup Recommendation
Here's a couple of recommendations (my setup):
- Use
VSCode
- Enabling the
File Nesting
setting ("explorer.fileNesting.enabled": true
)
- Disabling auto-expand nested files (
"explorer.fileNesting.expand": false
)
- Setting the capture for
File Nesting
to .freezed
and .g
files.
- (Possibly) setting the capture to
*_widget.dart
files, if possible and practical
Unfortunately, it doesn't seem like I can disable auto-expand if a folder only has one file (provided that the other files in the folder is nested under one file)