~manuel-uberti/boodle

Accounting SPA in Clojure and ClojureScript

15c693c Bump honeysql

2 days ago

1fa70ac Bump postgresql

4 days ago

#boodle

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.

#Usage

#Prerequisites

#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:

$ npm install
$ cd resources/src
$ gulp

Compile the ClojureScript files with:

$ clj -M:frontend compile boodle

#Running

From the project root, fire up the server with:

$ clj -M:run

You can now browse at http://localhost:8080.

#Docker and Docker Compose

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.

#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.

#Backup database

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

#Extra

The included etc/boodle.service is a basic systemd unit that executes etc/deploy.sh to run boodle automatically on my home server.

#Feedback, bug reporting, patches

I welcome any kind of contribution on this project. Use the dedicated mailing list for your messages.

#License

Copyright © (iterate inc 2017) Manuel Uberti

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