Skip to content

🌀 A parts mapping tool for IFS practitioners and their clients

License

Notifications You must be signed in to change notification settings

apossiblespace/parts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Parts Logo


Clojure CI License GPL 3

About

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.

Development

Before starting development, install dependencies with:

make deps

This will install both the Clojure and the NPM dependencies required.

Run Clojure REPL

make repl

This 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 the shadow-cljs process for building the frontend and watching for changes.
  • We can switch to the ClojureScript REPL with (cljs-repl)
  • Use :cljs/quit to return to the Clojure REPL

Build CSS

make css-watch

This will start PostCSS to watch for changes in resources/styles/*.css.

Unit tests

Run unit tests of the service using the kaocha test runner

make test

If additional libraries are required to support tests, add them to the :test/env alias definition in deps.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.

Deployment

We use Kamal to deploy a Docker container that will run the uberjar built with make dist.

Make sure that the KAMAL_REGISTRY_PASSWORD env var is exported so that the deploy can work.

Also edit config/deploy.yml to ensure it matches your setup. See the Kamal docs.

Build and test locally

It’s possible to build an uberjar and run it locally to test before deploying:

make dist && make run-dist

Deploy

A deployment can be started via:

# Always run tests before deploying
make test && make deploy

License

Copyright © 2025 Gosha Tcherednitchenko / A Possible Space Ltd

The GNU General Public License v3