Compare commits
16 Commits
1c003486ca
...
4ee82dce26
Author | SHA1 | Date | |
---|---|---|---|
4ee82dce26 | |||
1da86e30c3 | |||
51902cd65d | |||
014c3818ba | |||
210ddd65a5 | |||
5741236e2c | |||
99549fb441 | |||
67c79e252e | |||
3b1174225a | |||
92f56b1046 | |||
f068dd5009 | |||
ebc34d7031 | |||
03ea4a31ad | |||
8636d04b84 | |||
c63a8bc5d3 | |||
0aae7236ae |
26
README.md
26
README.md
@ -1,18 +1,20 @@
|
|||||||
# Budgeteer
|
# Budgeteer
|
||||||
|
|
||||||
Budgeting Web-Application written in Go and inspired by [YNAB](https://youneedabudget.com).
|
Budgeting Web-Application
|
||||||
|
|
||||||
## Getting started
|
## Data structure
|
||||||
|
|
||||||
The fastest way to get up and running quickly, is using docker-compose. Just download the [docker-compose.yml](https://git.javil.eu/jacob1123/budgeteer/src/branch/master/docker/docker-compose.yml) to some empty directory and run `docker-compose up -d`. This starts budgeteer, a postgres database and an adminer instance. The latter is optional and can be removed from the docker-compose.yml.
|
1 User
|
||||||
|
N Budgets
|
||||||
|
AccountID[]
|
||||||
|
CategoryID[]
|
||||||
|
PayeeID[]
|
||||||
|
|
||||||
## Known issues
|
N Accounts
|
||||||
|
TransactionID[]
|
||||||
|
N Categories
|
||||||
|
AssignmentID[]
|
||||||
|
N Payees
|
||||||
|
|
||||||
Currently the application is usable when importing from YNAB via their CSV export. All balances should match the balances from YNAB. There are even unit-tests that confirm that using my personal budget.
|
N Transactions
|
||||||
|
N Assignments
|
||||||
For people wishing to start fresh in Budgeteer, there currently are some blockers though:
|
|
||||||
- The ability to create new accounts and categories is missing (#59)
|
|
||||||
|
|
||||||
## Contributing
|
|
||||||
|
|
||||||
If you're willing to help, please check the issues for [help-wanted labels](https://git.javil.eu/jacob1123/budgeteer/issues?labels=4). Just using Budgeteer and reporting any issues is although very helpful.
|
|
@ -10,11 +10,11 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type FilterTransactionsRequest struct {
|
type FilterTransactionsRequest struct {
|
||||||
CategoryID string `json:"categoryId"`
|
CategoryID string `json:"category_id"`
|
||||||
PayeeID string `json:"payeeId"`
|
PayeeID string `json:"payee_id"`
|
||||||
AccountID string `json:"accountId"`
|
AccountID string `json:"account_id"`
|
||||||
FromDate time.Time `json:"fromDate"`
|
FromDate time.Time `json:"from_date"`
|
||||||
ToDate time.Time `json:"toDate"`
|
ToDate time.Time `json:"to_date"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *Handler) filteredTransactions(c echo.Context) error {
|
func (h *Handler) filteredTransactions(c echo.Context) error {
|
||||||
@ -58,7 +58,7 @@ func parseEmptyUUID(value string) (uuid.NullUUID, bool) {
|
|||||||
return uuid.NullUUID{}, false
|
return uuid.NullUUID{}, false
|
||||||
}
|
}
|
||||||
|
|
||||||
return uuid.NullUUID{UUID: val, Valid: true}, true
|
return uuid.NullUUID{val, true}, true
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *Handler) problematicTransactions(c echo.Context) error {
|
func (h *Handler) problematicTransactions(c echo.Context) error {
|
||||||
|
@ -93,11 +93,11 @@ export const useTransactionsStore = defineStore("budget/transactions", {
|
|||||||
async GetFilteredTransactions(accountID : string | null, categoryID : string | null, payeeID : string | null, fromDate : string, toDate : string) {
|
async GetFilteredTransactions(accountID : string | null, categoryID : string | null, payeeID : string | null, fromDate : string, toDate : string) {
|
||||||
const budgetStore = useBudgetsStore();
|
const budgetStore = useBudgetsStore();
|
||||||
const payload = JSON.stringify({
|
const payload = JSON.stringify({
|
||||||
categoryId: categoryID,
|
category_id: categoryID,
|
||||||
payeeId: payeeID,
|
payee_id: payeeID,
|
||||||
accountId: accountID,
|
account_id: accountID,
|
||||||
fromDate: fromDate,
|
from_date: fromDate,
|
||||||
toDate: toDate,
|
to_date: toDate,
|
||||||
});
|
});
|
||||||
const result = await POST("/budget/" + budgetStore.CurrentBudgetID + "/filtered-transactions", payload);
|
const result = await POST("/budget/" + budgetStore.CurrentBudgetID + "/filtered-transactions", payload);
|
||||||
const response = await result.json();
|
const response = await result.json();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user