UpBlazor
UpBlazor copied to clipboard
๐ฆ I built this site to integrate with Up bank (an Australian digital bank), to assist users with budgeting and to gain powerful future insights.
What is this?
๐ฆ I built this site to integrate with Up bank (an Australian digital bank), to assist users with budgeting and to gain powerful future insights.
Epics
-
[ ] โก Leverage the Up API (using Up.NET) to:
- [x] Fetch existing Transactional and Saver accounts to make selecting which account to save/expense simple
- [x] Use existing account balances for more accurate insights
- [ ] Track actual vs intended savings
- [ ] Automatically set savings in app when created on the site (this API does not exist on Up yet...)
-
[x] ๐ฒ Track incomes
- [x] Exact ($)
- [x] Allow multiple
-
[x] ๐งพ Track expenses
- [x] Exact ($) or Relative (%) cost
- [x] Source from Income streams/Up accounts
- [x] One off + Recurring
-
[x] ๐ชฃ Create savings plans
- [x] Create multiple, per income
- [x] Exact ($) or Relative (%) cost
- [x] Choose which Saver account to put the amount into
-
[ ] ๐ Insights + analytics
-
[x] Show a breakdown of how the calculations work (relative -> absolute), rolling totals, etc
-
[x] Forecast graphs
- [x] Income (in each Up account) - account for all income streams
- [x] Expenses (aggregate recurring and one offs)
- [x] Net Balances (Income - Expenses, in each account)
-
[ ] Suggested Budgetting
-
[ ] Daily Breakdown
-
[ ] Actual vs Intended
-
[ ] Reports
-
Examples
Layout + Notifications

Graph

Responsive Sider
Form

Result

Table

Code Architecture
This project follows a simplistic take on Clean Architecture.
UpBlazor.Core
- Contains the core models that are stored in the database/not dependent on anything
- Repository interfaces to abstract the infrastructure layer
- Helper methods/extensions
- Services
UpBlazor.Infrastructure
- Contains repository implementations using Marten DB
UpBlazor.Web
- Frontend is Blazor server-side
- Authentication is using Microsoft OAuth2
- UI Framework is AntBlazor, with AntBlazor Charts (based on G2Plot)
Getting Started
Development
- Install a local instance of Postgres
- Create a database called upblazor, and a user with access
- Update the Marten connection string in appsettings.json
- Build and run UpBlazor.Web
Production
- Install Docker and docker-compose
- Run
docker-compose up -d --build - The program is exposed on port 9994, so reverse proxy your domain to that port
Acknowledgments
Contributors
|
LukeParkerDev |
Andrzej Bakun |
Imgbot |
