boodle

Simple accounting single-page application in Clojure and ClojureScript.
18 May 20201590
4clojure1clojurescript1kaocha1re-frame1shadow-cljs22money, budgeting and management943selfhosted329docker

boodle

Simple accounting SPA in Clojure and ClojureScript.

Screenshot

boodle uses these Clojure/ClojureScript libraries:

I used Bulma for the UI and customised re-frame-modal and cljs-pikaday to play well with it. Check the documentation for more details.

Usage

Prerequisites

To run boodle, you need:

Database setup

Set up the database with the necessary tables and permissions you find in model.sql. Check also resources/config/config.edn to adjust the database connection parameters.

Compiling

From the project root, run:

$ yarn
$ cd resources/src
$ gulp

Compile the ClojureScript files with:

$ npx shadow-cljs compile boodle

Running

From the project root, fire up the server with:

$ clj -A:run

You can now browse at http://localhost:8080 and interact with boodle.

Docker and Docker Compose

Thanks to Moritz Marquardt, you can also run boodle via Docker and Docker Compose:

$ git clone https://github.com/manuel-uberti/boodle.git && cd boodle
$ docker-compose up -d

You can now access boodle at http://localhost:8080.

Tests

Unit tests are configured with kaocha and can be run from the project root with:

$ ./bin/kaocha

Linting

I use clj-kondo to check my code. As per its instructions, you should create a .clj-kondo directory at the root of boodle and run:

$ clj-kondo --lint "$(clojure -Spath)"

Refer to the clj-kondo README if you want to know more.

License

Copyright © (iterate inc 2017) Manuel Uberti

Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.