• Stars
    star
    126
  • Rank 284,543 (Top 6 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created almost 7 years ago
  • Updated over 3 years 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,832
star
2

docker-wireguard

Dockerfile
2,824
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,734
star
4

docker-webtop

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

docker-code-server

Dockerfile
1,566
star
6

reverse-proxy-confs

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

docker-plex

Dockerfile
992
star
8

docker-mods

Documentation and Examples of base container modifications
Dockerfile
940
star
9

docker-unifi-controller

Dockerfile
897
star
10

docker-calibre-web

Dockerfile
877
star
11

docker-qbittorrent

Dockerfile
868
star
12

docker-letsencrypt

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

docker-bookstack

A Docker container for the BookStack documentation wiki
Dockerfile
687
star
14

docker-sonarr

Dockerfile
672
star
15

docker-jellyfin

Dockerfile
628
star
16

budge

JavaScript
617
star
17

docker-unifi-network-application

Dockerfile
616
star
18

docker-radarr

Dockerfile
595
star
19

docker-nextcloud

Dockerfile
571
star
20

docker-emulatorjs

Web based retro emulation frontend with rom scanning and automated art ingestion.
Dockerfile
502
star
21

docker-transmission

Dockerfile
486
star
22

docker-openssh-server

Dockerfile
484
star
23

emulatorjs

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

docker-calibre

Dockerfile
352
star
25

docker-jackett

Dockerfile
346
star
26

docker-heimdall

Dockerfile
311
star
27

docker-grocy

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

docker-prowlarr

Docker image for Prowlarr/Prowlarr
Dockerfile
299
star
29

Heimdall-Apps

Apps for Heimdall
PHP
299
star
30

docker-smokeping

Shell
287
star
31

docker-duplicati

Dockerfile
283
star
32

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
282
star
33

docker-baseimage-kasmvnc

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

docker-netbootxyz

Dockerfile
257
star
35

docker-syncthing

Dockerfile
235
star
36

docker-bazarr

Dockerfile
232
star
37

docker-deluge

Dockerfile
223
star
38

docker-rdesktop

Dockerfile
222
star
39

docker-sabnzbd

Dockerfile
210
star
40

docker-lidarr

Dockerfile
204
star
41

docker-homeassistant

Dockerfile
200
star
42

docker-tautulli

Dockerfile
184
star
43

docker-duckdns

Shell
183
star
44

docker-mariadb

Dockerfile
181
star
45

docker-healthchecks

Dockerfile
176
star
46

docker-couchpotato

Dockerfile
153
star
47

docker-ombi

Dockerfile
153
star
48

davos

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

docker-rutorrent

DEPRECATED
PHP
151
star
50

docker-nzbget

Dockerfile
140
star
51

docker-ffmpeg

Dockerfile
139
star
52

docker-firefox

Dockerfile
135
star
53

docker-tvheadend

Dockerfile
134
star
54

fleet

Status and image fleet metadata management application for Docker images
Java
127
star
55

docker-freshrss

HTML
124
star
56

docker-baseimage-alpine

Dockerfile
124
star
57

docker-docker-compose

Shell
123
star
58

docker-nginx

Dockerfile
122
star
59

docker-kodi-headless

Dockerfile
122
star
60

docker-snipe-it

Alpine/Nginx container for the Asset Management software Snipe-IT
Dockerfile
115
star
61

docker-documentation

The repo behind...
108
star
62

docker-ddclient

Dockerfile
106
star
63

docker-emby

Dockerfile
106
star
64

docker-readarr

Container for readarr.com
105
star
65

docker-dokuwiki

Dockerfile
104
star
66

docker-piwigo

Dockerfile
104
star
67

docker-obsidian

Dockerfile
104
star
68

docker-resilio-sync

Dockerfile
102
star
69

docker-wireshark

Dockerfile
101
star
70

docker-overseerr

Dockerfile
98
star
71

docker-baseimage-guacgui

Dockerfile
98
star
72

docker-openvscode-server

Dockerfile
98
star
73

docker-beets

Dockerfile
97
star
74

docker-baseimage-ubuntu

Dockerfile
97
star
75

docker-daapd

Dockerfile
96
star
76

docker-chromium

Web accessible Chromium inside an Alpine Container
Dockerfile
96
star
77

docker-ubooquity

Dockerfile
94
star
78

docker-steamos

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

docker-netbox

Python
81
star
80

docker-libreoffice

Dockerfile
81
star
81

docker-pyload-ng

Dockerfile
80
star
82

docker-wikijs

Dockerfile
79
star
83

docker-lazylibrarian

Dockerfile
77
star
84

heimdalljs

JavaScript
77
star
85

docker-mastodon

Dockerfile
76
star
86

docker-baseimage-rdesktop-web

Custom all in one container for running GUI apps from a web browser
Dockerfile
72
star
87

docker-speedtest-tracker

Dockerfile
72
star
88

docker-librespeed

HTML
70
star
89

docker-projectsend

Dockerfile
69
star
90

docker-ldap-auth

Python
68
star
91

docker-diskover

A Docker container for the Diskover space mapping application
Dockerfile
68
star
92

gclient

NodeJS application replacement for the default Guacamole Client
JavaScript
67
star
93

docker-tt-rss

Dockerfile
65
star
94

docker-nzbhydra2

Dockerfile
65
star
95

docker-mstream

Dockerfile
62
star
96

docker-remmina

Dockerfile
62
star
97

docker-organizr

DEPRECATED
Dockerfile
61
star
98

docker-snapdrop

HTML
60
star
99

docker-blender

Responsive web accessible Blender Docker container with hardware acceleration.
Dockerfile
57
star
100

docker-budge

Dockerfile
56
star