https://github.com/apossiblespace/parts
π A parts mapping tool for IFS practitioners and their clients
https://github.com/apossiblespace/parts
clojure clojurescript ifs internal-family-systems mentalhealth
Last synced: 3 days ago
JSON representation
π A parts mapping tool for IFS practitioners and their clients
- Host: GitHub
- URL: https://github.com/apossiblespace/parts
- Owner: apossiblespace
- License: gpl-3.0
- Created: 2024-08-06T14:00:12.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-05-12T14:31:55.000Z (3 days ago)
- Last Synced: 2025-05-12T15:51:26.742Z (3 days ago)
- Topics: clojure, clojurescript, ifs, internal-family-systems, mentalhealth
- Language: Clojure
- Homepage: https://parts.ifs.tools
- Size: 1.07 MB
- Stars: 9
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![]()
-----
[](https://github.com/apossiblespace/parts/actions/workflows/all-tests.yaml)
[![License GPL 3][badge-license]](http://www.gnu.org/licenses/gpl-3.0.txt)## About
[Parts](https://parts.ifs.tools) is a toolkit for therapists working with the [Internal Family Systems model](https://en.wikipedia.org/wiki/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:
```shell
make deps
```This will install both the Clojure and the NPM dependencies required.
### Run Clojure REPL
```shell
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
```shell
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
```shell
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](https://kamal-deploy.org/docs/installation/).
### Build and test locally
Itβs possible to build an uberjar and run it locally to test before deploying:
```shell
make dist && make run-dist
```### Deploy
A deployment can be started via:
```shell
# Always run tests before deploying
make test && make deploy
```## License
Copyright Β© 2025 Gosha Tcherednitchenko / A Possible Space Ltd
[The GNU General Public License v3](https://www.gnu.org/licenses/gpl.html)
[badge-license]: https://img.shields.io/badge/license-GPL_3-green.svg