spiff-arena/README.md

101 lines
4.6 KiB
Markdown
Raw Normal View History

2022-10-12 15:07:01 +00:00
# spiff-arena
2023-01-15 05:47:01 +00:00
SpiffArena is a low(ish)-code software development platform for building, running, and monitoring executable diagrams.
It is intended to support Citizen Developers and to enhance their ability to contribute to the software development process.
2023-08-29 21:39:02 +00:00
Using tools that look a lot like flow-charts and spreadsheets, it is possible to capture complex rules in a way that everyone in your organization can see, understand, and directly execute.
2023-01-05 19:35:33 +00:00
2023-09-22 00:09:32 +00:00
Please visit the [SpiffWorkflow website](https://www.spiffworkflow.org) for a [Getting Started Guide](https://www.spiffworkflow.org/posts/articles/get_started/) to see how to use SpiffArena and try it out.
2023-01-15 05:47:01 +00:00
There are also additional articles, videos, and tutorials about SpiffArena and its components, including SpiffWorkflow, Service Connectors, and BPMN.js extensions.
2023-01-05 19:35:33 +00:00
2023-05-22 16:31:08 +00:00
## Backend Setup
2023-01-15 05:47:01 +00:00
2023-11-16 00:13:00 +00:00
First install python, poetry, and mysql. Then:
2023-05-22 16:31:08 +00:00
cd spiffworkflow-backend
2023-01-15 05:47:01 +00:00
poetry install
2023-08-30 13:47:34 +00:00
./bin/recreate_db clean
2023-05-22 16:31:08 +00:00
./bin/run_server_locally
## If you want to run all locally:
If you're on a Mac and trying to run native (might translate elsewhere) running python 3 and get errors with mysqlclient and psycopgen2 when running the Poetry install, you may need to install mysql-client, pkg-config, mysqlclient, and psycopgen2 first, remove mysqlclient and psycopgen2 from the pyproject.toml (or Poetry will try to build them and crash), and run the Poetry install again.
brew install mysql-client pkg-config
export PKG_CONFIG_PATH="$(brew --prefix)/opt/mysql-client/lib/pkgconfig"
pip install mysqlclient
pip install psycopg2
Python3 also won't recognize MySQLdb as a module. After the above installs (which you would do pre-Poetry), add these lines to __init__.py in the backend project:
import pymysql;
pymysql.install_as_MySQLdb()
On a Mac, port 7000 (used by the app) might be hijacked by Airplay. See the Docker section below.
Remember, if you don't need a full-on native dev experience, you can run the docker image, which saves you from all the native setup.
2023-09-21 19:03:56 +00:00
## Keycloak Setup
You will want an openid server of some sort.
There is one built in to the app that is used in the docker compose setup for simplicity, but non-compose defaults use a separate keycloak container by default.
You can start it like this:
./keycloak/bin/start_keycloak
It'll be running on port 7002 (if you want to log into the keycloak admin, localhost:7002).
Creds = admin/admin (also logs you into the app if running the front end)
2023-05-22 16:31:08 +00:00
## Frontend Setup
First install nodejs, ideally the version in .tool-versions (but likely other versions will work). Then:
2023-01-15 05:47:01 +00:00
2023-05-22 16:31:08 +00:00
cd spiffworkflow-frontend
npm install
npm start
2022-10-12 15:07:01 +00:00
Assuming you're running KeyCloak as indicated above, login will be admin/admin.
2023-05-22 16:31:08 +00:00
## Run tests
2023-08-29 21:39:02 +00:00
./bin/run_pyl
2023-01-05 19:35:33 +00:00
2023-05-22 16:31:08 +00:00
## Run cypress automated browser tests
2023-03-10 15:09:02 +00:00
2023-05-22 16:31:08 +00:00
Get the app running so you can access the frontend at http://localhost:7001 in your browser by following the frontend and backend setup steps above, and then:
2023-03-10 15:09:02 +00:00
./bin/run_cypress_tests_locally
2023-01-05 19:35:33 +00:00
## Docker
For full instructions, see [Running SpiffWorkflow Locally with Docker](https://www.spiffworkflow.org/posts/articles/get_started_docker/).
The `docker-compose.yml` file is for running a full-fledged instance of spiff-arena while `editor.docker-compose.yml` provides BPMN graphical editor capability to libraries and projects that depend on SpiffWorkflow but have no built-in BPMN edit capabilities.
Note: For those who upgraded to MacOS 12.1 and are running everything locally, your AirPlay receiver may have started on Port 7000 and your docker (or anything requesting port 7000) may fail due to this port already being used. You can disable this port in System Preferences > Sharing > AirPlay receiver.
2023-08-29 21:39:02 +00:00
## Contributing
2023-10-12 12:30:29 +00:00
To start understanding the system, you might:
2023-08-29 21:39:02 +00:00
2023-10-12 12:30:29 +00:00
1. Explore the demo site via the [Getting Started Guide](https://www.spiffworkflow.org/posts/articles/get_started)
2023-10-12 13:08:13 +00:00
1. Clone this repo, `cd docs`, run `./bin/build`, and open your browser to [http://127.0.0.1:8000](http://127.0.0.1:8000) to view (and ideally edit!) the docs
1. Check out our [GitHub issues](https://github.com/sartography/spiff-arena/issues), find something you like, and ask for help on discord
2023-10-12 12:30:29 +00:00
## Monorepo
2023-12-20 20:07:39 +00:00
This is a monorepo based on git subtrees that pulls together various spiffworkflow-related projects.
FYI, some scripts:
2023-10-12 12:30:29 +00:00
ls bin | grep subtree
2023-08-29 21:39:02 +00:00
2023-05-22 16:31:08 +00:00
## License
2023-01-15 05:47:01 +00:00
SpiffArena's main components are published under the terms of the
[GNU Lesser General Public License (LGPL) Version 3](https://www.gnu.org/licenses/lgpl-3.0.txt).
2023-01-05 19:35:33 +00:00
2023-05-22 16:31:08 +00:00
## Support
2023-01-15 05:47:01 +00:00
You can find us on [our Discord Channel](https://discord.gg/BYHcc7PpUC).
Commercial support for SpiffWorkflow is available from [Sartography](https://sartography.com).
2023-12-13 15:33:00 +00:00