Skip to content

Antalyse/simple-process-management

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Simple Process Management

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.


Features

  • 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.

Quickstart with Docker

  1. Clone the repo:

    git clone https://github.com/Antalyse/simple-process-management.git
    cd simple-process-management
  2. 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_URI accordingly.
  • Mount persistent storage for SQLite file or use an external DB container.

Quickstart with native Python

  1. Clone the repo:

    git clone https://github.com/Antalyse/simple-process-management.git
    cd simple-process-management
  2. Create a virtual environment and install dependencies:

    python -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt
  3. 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"
  4. Initialize the database:

    export FLASK_APP=app.py
    flask init-db
  5. Create an admin/user account:

    flask add-user myusername mypassword
  6. 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


Environment variables

  • DATABASE_URI (required) — SQLAlchemy database URL (e.g. postgresql://user:pass@host:5432/db or sqlite:///data.db).
  • API_SECRET_KEY — Flask secret key for sessions (defaults to 'dev-secret-key' if not set).
  • SQLALCHEMY_TRACK_MODIFICATIONS — optional SQLAlchemy setting (recommended False).

CLI commands

  • 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.


License

This project is provided under the Apache 2.0 License.

About

Simple Process Management tool powered by BPMN

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published