Parts is a toolkit for therapists working with the Internal Family Systems model. It provides a tool for easy, collaborative parts mapping, which can be used to facilitate conversations with clients during sessions.
Before starting development, install dependencies with:
make depsThis will install both the Clojure and the NPM dependencies required.
make replThis will start a Clojure REPL that includes shadow-cljs (which we use to build our frontend). When we connect to this from CIDER (with cider-connect-clj), the dev/repl namespace will be automatically loaded.
From that namespace:
- The app server can be (re)started with
(go). This will also start theshadow-cljsprocess for building the frontend and watching for changes. - We can switch to the ClojureScript REPL with
(cljs-repl) - Use
:cljs/quitto return to the Clojure REPL
make css-watchThis will start PostCSS to watch for changes in resources/styles/*.css.
Run unit tests of the service using the kaocha test runner
make testIf additional libraries are required to support tests, add them to the
:test/envalias definition indeps.edn
make test-watch will run tests on file save, stopping the current test run on the first failing test. Tests will continue to be watched until Ctrl-c is pressed.
The application runs as a systemd service. Deployment happens by building a uberjar, scping it to the remote host, and restarting the service.
Itโs possible to build an uberjar and run it locally to test before deploying:
make dist && make run-distA deployment can be started via:
# Always run tests before deploying
make test && make deployCopyright ยฉ 2025 Gosha Tcherednitchenko / A Possible Space Ltd