Posts

JSTable

While removing the jQuery dependencies from the Life-Tracking Dashboard I didn’t find a satisfying replacement for the jQuery datatables plugin with server side rendering.

Vanilla-DataTables was unfortunately not able to do server-side rendering to I did a custom implementation using the in ES6 introduced classes.

You can find the resulting project JSTable on github and more information about the usage on https://www.haegi.org/jstable/

Life-Tracking improvements

Since the last post several new features were added to the Life-Tracking dashboards:

Finances

Category Assignments

It is now possible to automatically assign categories to new finance entries.

Payment Methods

You can define and save different payment methods.

Budgets

It is possible to define individual budgets for one or multiple categories. The budget is valid for one month and generated dynamically. The budgets are checked when a new finance entry is added.

Crawlers

You can now define individual data tables which can be populated by sending JSON data to the dashboard. It is also possible to define which fields should be visible or sortable and how the individual fields are displayed.

Additionally it is possible to filter the data for one or multiple days.

A new dataset or an update for a existing dataset can be send like follows:

curl --header "Content-Type: application/json" \
  --request POST \
  --data '{"identifier":"offer1","data":{"name":"job offer 1", "company":"company 2", "pay":50000, "url":"http://www.google.com"}}' \
  http://<user>:<password>@<domain>/crawlers/<hash>/record/

Multiple Cars

The dashboard is now capable to support multiple cars.

Splitted Bills

Inspired by spliwise it is possible to share and split bills with other users. You can create groups of users and enable automatic finance entry generation. The expenses and payments can be splitted equally or by fixed values.

The individual balances for the each user is calculated immediately.

Trips

The trip module enables easy trip planing. You can create a new trip and add accomodations, transportation or events which are then displayed in a list and map view.

Location History

The location history module is improved so that you can set individual location points or trigger new points by a Tasker task.

Additionally all finance and car service entries are saved with the corresponding location. The location types are now clustered and can be hidden on the map.

Tasker task

A1: Standortsuche starten [ 
Quelle:Beide 
Timeout (Sekunden):10 
sofort mit Task fortfahren:Aus 
Standortsuche fortführen:Aus 
] 

A2: HTTP Auth [ 
Method:Username and Password 
Client ID: 
Client Secret: 
Endpoint To Get Code: 
Endpoint To Get Refresh Token: 
Scopes: 
Force Re-Authentication:Aus 
Timeout (Sekunden):30 
Username:<USERNAME> 
Password:<PASSWORD> 
] 

A3: HTTP Request [ 
Method:POST 
URL:https://<DOMAIN>/location/record 
Headers:%http_auth_headers 
Query Parameters: 
Body: {
"identifier":"<DEVICE>", 
"device":"%DEVID",
"date":"%DATE",
"time":"%TIME",
"batt":"%BATT",
"times":"%TIMES",
"wifi_state":"%WIFI",
"gps_state":"%GPS",
"mfield":"%MFIELD",
"screen_state":"%SCREEN",
"ups":"%UPS",
"gps_loc":"%LOC",
"gps_acc":"%LOCACC",
"gps_alt":"%LOCALT",
"gps_spd":"%LOCSPD",
"gps_tms":"%LOCTMS",
"net_loc":"%LOCN",
"net_acc":"%LOCNACC",
"net_tms":"%LOCNTMS",
"cell_id":"%CELLID",
"cell_sig":"%CELLSIG",
"cell_srv":"%CELLSRV"
}
File To Send: 
File To Save With Output: 
Timeout (Sekunden):10 
Trust Any Certificate:Aus 
]

PWA with Notifications

For a easy mobile application the dashboard is supporting a service worker with optional push notifications.

It is possible to send a push notification to the following endpoint:

curl "http://<user>:<password>@<domain>/notifications/notify?type=test11&title=Test%20title&message=Test%20message"

User Management

The individual modules can be made available for individual users:

Kanban project management boards

Inspired by trello and the open source alternative wekan I added some functionallity to support kanban-like boards in my life-tracking application.
I got also some inspiration by the deck plugin of nextcloud and github project boards.

Whith the boards module users can create boards and add other users to the board. In the board view it is possible to create different stacks and add cards to the stacks.
Users can add labels with colors to the board. Users, labels, due dates and descriptions can be assigned to cards.
The description can contain simple markdown which is rendered with simpleMDE.

Users can subscribe to daily reminder mails for due cards.

Life Tracking Dashboard

A long time ago I started to log my daily expenses and incomes in a Google Calc Sheet. Additionally I logged my cars fuel consumption in another sheet. To automate the process my Android App is able to communicate with my Raspberry Pi where a Python script insert the neccessarry data into the Sheet.

For better statistics and less dependency to Google I developed a small Life-Tracking dashboard where I can log my expenses, income and my cars fuel consumption. Additionally I created an endpoint to log my location with tasker.

You can find the project over on github.

Features

Screenshots