A lightweight BPMN process management web app built with Flask and SQLAlchemy.
Provides a simple UI to organize BPMN processes into folders, create/edit BPMN diagrams (via bpmn-js/bpmn-modeler), create process descriptions and manage users. Intended as a small, self-hostable starter for storing and editing BPMN XML.
- User authentication (simple username/password) with CLI user management.
- Folder hierarchy for organizing processes (parent/child folders).
- Create, rename, move and delete folders and processes.
- Browser-based BPMN editor (bpmn-modeler) with server-side persistence of BPMN XML and a description.
- Process Description editor working with Markdown.
- REST endpoint to save process XML and metadata.
- Simple, minimal UI using Bootstrap.
-
Clone the repo:
git clone https://github.com/Antalyse/simple-process-management.git cd simple-process-management -
Build and run using Docker:
docker build -t simple-process-mgmt . docker run -e DATABASE_URI="sqlite:///data.db" \ -e API_SECRET_KEY="change-me" \ -p 5000:5000 \ simple-process-mgmt
Notes:
- For production, use a proper DB (Postgres/MySQL) and point
DATABASE_URIaccordingly. - Mount persistent storage for SQLite file or use an external DB container.
-
Clone the repo:
git clone https://github.com/Antalyse/simple-process-management.git cd simple-process-management -
Create a virtual environment and install dependencies:
python -m venv .venv source .venv/bin/activate pip install -r requirements.txt -
Configure environment variables (example using SQLite for quick local testing):
export DATABASE_URI="sqlite:///data.db" export API_SECRET_KEY="change-me-to-a-secure-secret" # Optional: export SQLALCHEMY_TRACK_MODIFICATIONS="False"
-
Initialize the database:
export FLASK_APP=app.py flask init-db -
Create an admin/user account:
flask add-user myusername mypassword
-
Run the app:
- Option A — Flask CLI
flask run
- Option B — directly with Python (app creates DB tables on start if missing)
python app.py
The app will be available at http://127.0.0.1:5000
- Option A — Flask CLI
DATABASE_URI(required) — SQLAlchemy database URL (e.g.postgresql://user:pass@host:5432/dborsqlite:///data.db).API_SECRET_KEY— Flask secret key for sessions (defaults to'dev-secret-key'if not set).SQLALCHEMY_TRACK_MODIFICATIONS— optional SQLAlchemy setting (recommendedFalse).
flask init-db— create database tables.flask add-user <username> <password>— create a new user.flask delete-user <username>— delete a user.flask reset-password <username> <new_password>— reset user password.
Make sure FLASK_APP=app.py is set when using flask CLI.
This project is provided under the Apache 2.0 License.