Almoneya
A double-entry accounting system
This is an exploration into alternative schemas, using different tools than what I use everyday.
- Implementation languages: Scala and Elm;
- Strongly typed domain objects (use
TenantId
instead ofInt
to represent tenant IDs, for example); - Schema management: Sqitch;
- Web server: Jetty
- Patterns: Repository Pattern.
How to start
At the moment, only the API is exposed. To play with the API, run the following commands, after installing VirtualBox and Vagrant.
vagrant up
vagrant ssh
cd /vagrant
bin/bootstrap
bin/sbt test run
# In another terminal window, run:
curl --silent --user username:francois http://localhost:8080/api/accounts/ | jq --color-output . | less --RAW-CONTROL-CHARS
Project Organisation
The almoneya-api/
directory holds the actual API. This is a Scala project. The almoneya-frontend/
directory holds the
frontend application, written in Elm. Each project has further information on how to build and maintain it.