boodle
Simple accounting SPA in Clojure and ClojureScript.
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:
- a Java JDK/JRE suitable for your system (I use OpenJDK)
- Clojure
- PostgreSQL
- yarn
- gulp
- shadow-cljs
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.