Simple accounting SPA in Clojure and ClojureScript.
boodle uses the following Clojure/ClojureScript libraries:
I use Bulma for the UI and customised re-frame-modal and cljs-pikaday to play well with it. Check the overview for more details.
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.
From the project root, run:
$ npm install
$ cd resources/src
$ gulp
Compile the ClojureScript files with:
$ clj -M:frontend compile boodle
From the project root, fire up the server with:
$ clj -M:run
You can now browse at http://localhost:8080
.
Thanks to Moritz Marquardt, you can also run boodle via Docker and Docker Compose:
$ git clone https://git.sr.ht/~manuel-uberti/boodle && cd boodle
$ docker-compose up -d
You can now browse at http://localhost:8080
.
Unit tests are configured with kaocha and can be run from the project root with:
$ ./bin/kaocha
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.
boodle runs on PostgreSQL, so to backup and restore the database you could use something along these lines:
$ sudo su - postgres
$ pg_dump -h localhost -U admin boodle > /tmp/boodle_db_[current_date].sql
$ sudo su - postgres
$ dropdb boodle
$ createdb boodle
$ psql -U admin -d boodle -f /tmp/boodle_db_[current_date].sql
The included etc/boodle.service
is a basic systemd
unit that
executes etc/deploy.sh
to run boodle automatically on my home server.
I welcome any kind of contribution on this project. Use the dedicated mailing list for your messages.
Copyright © (iterate inc 2017) Manuel Uberti
Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.