• Stars
    star
    120
  • Rank 285,661 (Top 6 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created about 6 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Web-based fuel logging dashboard

This project is no longer under development. The codebase is extrememly out of date and requires a ground-up rewrite. No further features will be added, and no PRs will be merged in. I truly appreciate the response this application got, but I chose poorly when it came to the language/framework. Using Angular2 when it was just starting out and thus quite volatile and open to change wans't a smart move. As such, most of the code is now either deprecated or requires updates. I unfortunately don't have the time to do this.

A spiritual successor to Clarkson is now in development, called Hammond. I highly recommend people check it out: https://github.com/akhilrex/hammond

Clarkson

Clarkson is a web-based dashboard application that gives you a neat and clean interface for logging your fuel fill-ups for all of your vehicles. The application has full multi-user support, as well as multiple vehicles per user. Whenever you fill-up your car or motorcycle, keep the receipt and record the data in Clarkson.

Screenshot

Features

  • Dashboard giving you high-level statistics on your vehicle fill-ups, including:
    • Total spent on fill-ups on all your vehicles
    • Total distance traveled
    • Graphs showing fuel consumption trends
  • Add/edit/remove an unlimited number of vehicles
    • Include basic information such as Make, Model, Registration, VIN, Fuel Type
  • Add/edit/remove fuel fill-ups
    • Total cost or unit cost will be automatically calculated as you enter the data
    • Include any notes
    • Inform the app whether or not the fill-up was to the top (full tank), or if you missed any previous fill-ups
  • Choose your units - available settings:
    • Fuel Units: Litres, Gallons, or US Gallons
    • Consumption Units: MPG, L/100KM
    • Distance Units: Miles, Kilometres
    • Currency Units: GBP, USD, EUR, AUD, CAD

Running the application

Clarkson has an Angular front-end, with ExpressJS backend, connecting to a MySQL database (Supported version v5.7.*). It uses Flyway as a means of managing incremental migrations of the database schema.

Get the dependencies

To get the application running, you'll need node and npm installed. Firstly, install the angular-cli (plus ts dependencies):

npm install -g @angular/cli ts-node typescript

Then grab all of the dependencies for the app itself:

npm install

Set up the frontend config

Depending on how you run the application, you'll need to update the src/environments/environment.prod.ts file so the frontend points to the right server URL:

export const environment = {
    production: true,
    apiBaseUrl: 'https://your-domain-here/api' // or use 'http://<local_network_ip>:3000' if not behind a reverse proxy
};

Build

Once you're happy with the endpoint in config, build the frontend:

ng build --prod

This will create a dist/ directory, which is where the frontend gets served.

Migrate the database

Before you run the application, you'll need to run a database migration using flyway. This will create the schema and initial tables/procedures that are used by Clarkson. To do this, run:

./flyway/flyway -user=<mysql_user> -password=<mysql_user> -schemas=clarkson -url=jdbc:mysql://<mysql_host_ip> migrate

Note: The -user, -password and -url values must match those that you use when running the application (see below).

JRE: Flyway is a Java tool, so requires the JRE to be available in $PATH. It is not packaged as part of this application due to variations in OS requirements.

Start the app

Finally, start the application by running:

MYSQL_HOST=<mysql_host_ip> MYSQL_USERNAME=<mysql_user> MYSQL_PASSWORD=<mysql_user> ENABLE_REGISTRATIONS=true APP_PORT=3000 node clarkson.js

Environment variables at startup:

Env Required? Used for
MYSQL_HOST Yes Points the backend to the MySQL database
MYSQL_USERNAME Yes The user with access to the clarkson schema
MYSQL_PASSWORD Yes The password for the user
ENABLE_REGISTRATIONS No Defaults to false. If set to true, allows new users to register
APP_PORT No Defaults to 3000. Changes the running port of the application

Credits

More Repositories

1

Heimdall

An Application dashboard and launcher
PHP
7,126
star
2

docker-wireguard

Dockerfile
2,471
star
3

docker-swag

Nginx webserver and reverse proxy with php support and a built-in Certbot (Let's Encrypt) client. It also contains fail2ban for intrusion prevention.
Dockerfile
2,461
star
4

docker-code-server

Dockerfile
1,415
star
5

docker-webtop

Ubuntu, Alpine, Arch, and Fedora based Webtop images, Linux in a web browser supporting popular desktop environments.
Dockerfile
1,275
star
6

reverse-proxy-confs

These confs are pulled into our SWAG image: https://github.com/linuxserver/docker-swag
1,229
star
7

docker-plex

Dockerfile
992
star
8

docker-unifi-controller

Dockerfile
844
star
9

docker-mods

Documentation and Examples of base container modifications
Dockerfile
808
star
10

docker-letsencrypt

DEPRECATED: Please use linuxserver/swag instead
Dockerfile
727
star
11

docker-sonarr

Dockerfile
672
star
12

docker-calibre-web

Dockerfile
663
star
13

budge

JavaScript
579
star
14

docker-nextcloud

Dockerfile
571
star
15

docker-jellyfin

Dockerfile
563
star
16

docker-bookstack

A Docker container for the BookStack documentation wiki
Dockerfile
556
star
17

docker-qbittorrent

Dockerfile
554
star
18

docker-radarr

Dockerfile
501
star
19

docker-transmission

Dockerfile
486
star
20

docker-openssh-server

Dockerfile
473
star
21

docker-emulatorjs

Web based retro emulation frontend with rom scanning and automated art ingestion.
Dockerfile
439
star
22

docker-unifi-network-application

Dockerfile
419
star
23

docker-jackett

Dockerfile
346
star
24

emulatorjs

Self hosted web based retro emulation front end with rom and art management.
JavaScript
331
star
25

docker-calibre

Dockerfile
291
star
26

docker-smokeping

Shell
287
star
27

Heimdall-Apps

Apps for Heimdall
PHP
283
star
28

docker-heimdall

Dockerfile
282
star
29

docker-grocy

A container for grocy - the ERP application for your kitchen https://grocy.info
Dockerfile
256
star
30

docker-prowlarr

Docker image for Prowlarr/Prowlarr
Dockerfile
249
star
31

docker-syncthing

Dockerfile
235
star
32

docker-deluge

Dockerfile
223
star
33

docker-netbootxyz

Dockerfile
222
star
34

docker-kasm

Kasm Workspaces platform provides enterprise-class orchestration, data loss prevention, and web streaming technology to enable the delivery of containerized workloads to your browser.
Shell
218
star
35

docker-sabnzbd

Dockerfile
210
star
36

docker-duplicati

Dockerfile
207
star
37

docker-bazarr

Dockerfile
200
star
38

docker-rdesktop

Dockerfile
191
star
39

docker-tautulli

Dockerfile
184
star
40

docker-duckdns

Shell
183
star
41

docker-mariadb

Dockerfile
181
star
42

docker-homeassistant

Dockerfile
170
star
43

docker-lidarr

Dockerfile
169
star
44

docker-healthchecks

Dockerfile
163
star
45

docker-baseimage-kasmvnc

Base Images for remote web based Linux desktops using KasmVNC for many popular distros.
Shell
159
star
46

docker-couchpotato

Dockerfile
153
star
47

davos

Web-based FTP automation for Linux servers.
Java
151
star
48

docker-rutorrent

DEPRECATED
PHP
151
star
49

docker-ombi

Dockerfile
147
star
50

docker-nzbget

Dockerfile
140
star
51

docker-tvheadend

Dockerfile
134
star
52

docker-freshrss

HTML
124
star
53

docker-baseimage-alpine

Dockerfile
124
star
54

docker-docker-compose

Shell
123
star
55

docker-nginx

Dockerfile
122
star
56

docker-kodi-headless

Dockerfile
122
star
57

docker-firefox

Dockerfile
113
star
58

fleet

Status and image fleet metadata management application for Docker images
Java
110
star
59

docker-ffmpeg

Dockerfile
109
star
60

docker-ddclient

Dockerfile
106
star
61

docker-piwigo

Dockerfile
104
star
62

docker-resilio-sync

Dockerfile
102
star
63

docker-snipe-it

Alpine/Nginx container for the Asset Management software Snipe-IT
Dockerfile
101
star
64

docker-baseimage-guacgui

Dockerfile
98
star
65

docker-beets

Dockerfile
97
star
66

docker-baseimage-ubuntu

Dockerfile
97
star
67

docker-daapd

Dockerfile
96
star
68

docker-readarr

Container for readarr.com
94
star
69

docker-wireshark

Dockerfile
87
star
70

docker-openvscode-server

Dockerfile
83
star
71

docker-dokuwiki

Dockerfile
82
star
72

docker-ubooquity

Dockerfile
82
star
73

docker-emby

Dockerfile
80
star
74

docker-overseerr

Dockerfile
77
star
75

docker-lazylibrarian

Dockerfile
77
star
76

heimdalljs

JavaScript
77
star
77

docker-baseimage-rdesktop-web

Custom all in one container for running GUI apps from a web browser
Dockerfile
73
star
78

docker-netbox

Python
72
star
79

docker-pyload-ng

Dockerfile
72
star
80

docker-mastodon

Dockerfile
71
star
81

gclient

NodeJS application replacement for the default Guacamole Client
JavaScript
66
star
82

docker-ldap-auth

Python
66
star
83

docker-librespeed

HTML
66
star
84

docker-steamos

Vanilla Arch modified into SteamOS with web based Desktop access, useful for remote play and lower end games
Dockerfile
66
star
85

docker-tt-rss

Dockerfile
65
star
86

docker-libreoffice

Dockerfile
64
star
87

docker-wikijs

Dockerfile
64
star
88

docker-diskover

A Docker container for the Diskover space mapping application
Dockerfile
64
star
89

docker-nzbhydra2

Dockerfile
61
star
90

docker-organizr

DEPRECATED
Dockerfile
61
star
91

docker-budge

Dockerfile
56
star
92

docker-remmina

Dockerfile
56
star
93

docker-projectsend

Dockerfile
55
star
94

docker-scrutiny

Dockerfile
54
star
95

docker-endlessh

Dockerfile
53
star
96

docker-snapdrop

HTML
52
star
97

docker-chromium

Web accessible Chromium inside an Alpine Container
Dockerfile
52
star
98

docker-paperless-ngx

Dockerfile
48
star
99

docker-headphones

Dockerfile
48
star
100

docker-papermerge

Dockerfile
47
star