| 
1 |  | -# workflow-manager 🚀  | 
 | 1 | +# Volto Workflow Manager  | 
2 | 2 | 
 
  | 
3 |  | -[](https://github.com/plone/cookieplone-templates/)  | 
4 |  | -[](https://github.com/psf/black)  | 
5 |  | -[](https://github.com/collective/workflow-manager/actions/workflows/backend.yml)  | 
6 |  | -[](https://github.com/collective/workflow-manager/actions/workflows/frontend.yml)  | 
 | 3 | +Volto Workflow Manager is a visual workflow editor for Plone.    | 
 | 4 | +It lets you create, manage, and edit workflows inside the Volto UI using a simple graph-based interface.  | 
7 | 5 | 
 
  | 
8 |  | -A new project using Plone 6.  | 
 | 6 | +---  | 
9 | 7 | 
 
  | 
10 |  | -## Quick Start 🏁  | 
 | 8 | +## Installation  | 
11 | 9 | 
 
  | 
12 |  | -### Prerequisites ✅  | 
 | 10 | +This package is a Volto add-on. To install it in your Volto project:  | 
13 | 11 | 
 
  | 
14 |  | --   An [operating system](https://6.docs.plone.org/install/create-project-cookieplone.html#prerequisites-for-installation) that runs all the requirements mentioned.  | 
15 |  | --   [uv](https://6.docs.plone.org/install/create-project-cookieplone.html#uv)  | 
16 |  | --   [nvm](https://6.docs.plone.org/install/create-project-cookieplone.html#nvm)  | 
17 |  | --   [Node.js and pnpm](https://6.docs.plone.org/install/create-project.html#node-js) 22  | 
18 |  | --   [Make](https://6.docs.plone.org/install/create-project-cookieplone.html#make)  | 
19 |  | --   [Git](https://6.docs.plone.org/install/create-project-cookieplone.html#git)  | 
20 |  | --   [Docker](https://docs.docker.com/get-started/get-docker/) (optional)  | 
 | 12 | +1. Add `workflow-manager` to your project's `package.json`:  | 
21 | 13 | 
 
  | 
22 |  | - | 
23 |  | -### Installation 🔧  | 
24 |  | - | 
25 |  | -1.  Clone this repository, then change your working directory.  | 
26 |  | - | 
27 |  | -    ```shell  | 
28 |  | -    git clone  [email protected]:collective/workflow-manager.git  | 
29 |  | -    cd workflow-manager  | 
 | 14 | +    ```json  | 
 | 15 | +    {  | 
 | 16 | +      "addons": ["workflow-manager"]  | 
 | 17 | +    }  | 
30 | 18 |     ```  | 
31 | 19 | 
 
  | 
32 |  | -2.  Install this code base.  | 
 | 20 | +2. Install dependencies:  | 
33 | 21 | 
 
  | 
34 |  | -    ```shell  | 
35 |  | -    make install  | 
 | 22 | +    ```bash  | 
 | 23 | +    pnpm install  | 
36 | 24 |     ```  | 
37 | 25 | 
 
  | 
 | 26 | +3. Start the Volto development server:  | 
38 | 27 | 
 
  | 
39 |  | -### Fire Up the Servers 🔥  | 
40 |  | - | 
41 |  | -1.  Create a new Plone site on your first run.  | 
42 |  | - | 
43 |  | -    ```shell  | 
44 |  | -    make backend-create-site  | 
 | 28 | +    ```bash  | 
 | 29 | +    pnpm start  | 
45 | 30 |     ```  | 
46 | 31 | 
 
  | 
47 |  | -2.  Start the backend at http://localhost:8080/.  | 
 | 32 | +---  | 
48 | 33 | 
 
  | 
49 |  | -    ```shell  | 
50 |  | -    make backend-start  | 
51 |  | -    ```  | 
 | 34 | +## How to Use  | 
52 | 35 | 
 
  | 
53 |  | -3.  In a new shell session, start the frontend at http://localhost:3000/.  | 
 | 36 | +1. Open the **Control Panel** and select **Workflow Manager**.  | 
 | 37 | +2. Create a new workflow if one does not exist.  | 
 | 38 | +3. Add states and transitions using the graph interface.  | 
 | 39 | +4. Edit state and transition details from the sidebar.  | 
 | 40 | +5. Assign permissions and roles as needed.  | 
 | 41 | +6. Save changes using the Volto toolbar.  | 
54 | 42 | 
 
  | 
55 |  | -    ```shell  | 
56 |  | -    make frontend-start  | 
57 |  | -    ```  | 
58 |  | - | 
59 |  | -Voila! Your Plone site should be live and kicking! 🎉  | 
60 |  | - | 
61 |  | -### Local Stack Deployment 📦  | 
 | 43 | +---  | 
62 | 44 | 
 
  | 
63 |  | -Deploy a local `Docker Compose` environment that includes:  | 
 | 45 | +## Development Setup  | 
64 | 46 | 
 
  | 
65 |  | -- Docker images for Backend and Frontend 🖼️  | 
66 |  | -- A stack with a Traefik router and a Postgres database 🗃️  | 
67 |  | -- Accessible at [http://workflow-manager.localhost](http://workflow-manager.localhost) 🌐  | 
 | 47 | +If you want to contribute or customize the add-on locally:  | 
68 | 48 | 
 
  | 
69 |  | -Execute the following:  | 
70 |  | - | 
71 |  | -```shell  | 
72 |  | -make stack-start  | 
73 |  | -make stack-create-site  | 
74 |  | -```  | 
 | 49 | +## Requirements  | 
75 | 50 | 
 
  | 
76 |  | -And... you're all set! Your Plone site is up and running locally! 🚀  | 
 | 51 | +- [Node.js 22](https://6.docs.plone.org/install/create-project.html#node-js)   | 
 | 52 | +- [pnpm](https://pnpm.io/)  | 
 | 53 | +- [UV](https://6.docs.plone.org/install/create-project-cookieplone.html#uv)  | 
77 | 54 | 
 
  | 
78 |  | -## Project Structure 🏗️  | 
 | 55 | +### Installation   | 
79 | 56 | 
 
  | 
80 |  | -This monorepo consists of the following distinct sections:  | 
 | 57 | +1. Clone the repository:  | 
81 | 58 | 
 
  | 
82 |  | -- **backend**: Houses the API and Plone installation, utilizing pip instead of buildout, and includes a policy package named workflow.manager.  | 
83 |  | -- **frontend**: Contains the React (Volto) package.  | 
84 |  | -- **devops**: Encompasses Docker Stack, Ansible playbooks, and Cache settings.  | 
85 |  | -- **docs**: Scaffold for writing documentation for your project.  | 
86 |  | -
  | 
87 |  | -### Why This Structure? 🤔  | 
88 |  | -
  | 
89 |  | -- All necessary codebases to run the site are contained within the repo (excluding existing addons for Plone and React).  | 
90 |  | -- Specific GitHub Workflows are triggered based on changes in each codebase (refer to .github/workflows).  | 
91 |  | -- Simplifies the creation of Docker images for each codebase.  | 
92 |  | -- Demonstrates Plone installation/setup without buildout.  | 
93 |  | -
  | 
94 |  | -## Code Quality Assurance 🧐  | 
95 |  | -
  | 
96 |  | -To automatically format your code and ensure it adheres to quality standards, execute:  | 
97 |  | -
  | 
98 |  | -```shell  | 
99 |  | -make check  | 
 | 59 | +```sh  | 
 | 60 | +git clone https://github.com/Manas-Kenge/workflow-manager.git  | 
 | 61 | +cd workflow-manager  | 
100 | 62 | ```  | 
101 | 63 | 
 
  | 
102 |  | -### Format the codebase  | 
 | 64 | +2. Install dependencies for both Backend and Frontend:  | 
103 | 65 | 
 
  | 
104 |  | -To format the codebase, it is possible to run `format`:  | 
105 |  | -
  | 
106 |  | -```shell  | 
107 |  | -make format  | 
 | 66 | +```sh  | 
 | 67 | +make install  | 
108 | 68 | ```  | 
109 | 69 | 
 
  | 
110 |  | -| Section | Tool | Description | Configuration |  | 
111 |  | -| --- | --- | --- | --- |  | 
112 |  | -| backend | Ruff | Python code formatting, imports sorting  | [`backend/pyproject.toml`](./backend/pyproject.toml) |  | 
113 |  | -| backend | `zpretty` | XML and ZCML formatting  | -- |  | 
114 |  | -| frontend | ESLint | Fixes most common frontend issues | [`frontend/.eslintrc.js`](.frontend/.eslintrc.js) |  | 
115 |  | -| frontend | prettier | Format JS and Typescript code  | [`frontend/.prettierrc`](.frontend/.prettierrc) |  | 
116 |  | -| frontend | Stylelint | Format Styles (css, less, sass)  | [`frontend/.stylelintrc`](.frontend/.stylelintrc) |  | 
117 |  | -
  | 
118 |  | -Formatters can also be run within the `backend` or `frontend` folders.  | 
 | 70 | +### Start the Servers  | 
119 | 71 | 
 
  | 
120 |  | -### Linting the codebase  | 
121 |  | -or `lint`:  | 
 | 72 | +1. Start the **Backend** (Plone) at [http://localhost:8080/](http://localhost:8080/):  | 
122 | 73 | 
 
  | 
123 |  | - ```shell  | 
124 |  | -make lint  | 
 | 74 | +```sh  | 
 | 75 | +make backend-start  | 
125 | 76 | ```  | 
126 | 77 | 
 
  | 
127 |  | -| Section | Tool | Description | Configuration |  | 
128 |  | -| --- | --- | --- | --- |  | 
129 |  | -| backend | Ruff | Checks code formatting, imports sorting  | [`backend/pyproject.toml`](./backend/pyproject.toml) |  | 
130 |  | -| backend | Pyroma | Checks Python package metadata  | -- |  | 
131 |  | -| backend | check-python-versions | Checks Python version information  | -- |  | 
132 |  | -| backend | `zpretty` | Checks XML and ZCML formatting  | -- |  | 
133 |  | -| frontend | ESLint | Checks JS / Typescript lint | [`frontend/.eslintrc.js`](.frontend/.eslintrc.js) |  | 
134 |  | -| frontend | prettier | Check JS / Typescript formatting  | [`frontend/.prettierrc`](.frontend/.prettierrc) |  | 
135 |  | -| frontend | Stylelint | Check Styles (css, less, sass) formatting  | [`frontend/.stylelintrc`](.frontend/.stylelintrc) |  | 
136 |  | -
  | 
137 |  | -Linters can be run individually within the `backend` or `frontend` folders.  | 
 | 78 | +2. In a new terminal, start the **Frontend** (Volto) at [http://localhost:3000/](http://localhost:3000/):  | 
138 | 79 | 
 
  | 
139 |  | -## Internationalization 🌐  | 
 | 80 | +```sh  | 
 | 81 | +make frontend-start  | 
 | 82 | +```  | 
140 | 83 | 
 
  | 
141 |  | -Generate translation files for Plone and Volto with ease:  | 
 | 84 | + Your Plone development environment is now live!  | 
142 | 85 | 
 
  | 
143 |  | -```shell  | 
144 |  | -make i18n  | 
145 |  | -```  | 
146 | 86 | 
 
  | 
147 |  | -## Credits and Acknowledgements 🙏  | 
 | 87 | +# License  | 
148 | 88 | 
 
  | 
149 |  | -Generated using [Cookieplone (0.9.7)](https://github.com/plone/cookieplone) and [cookieplone-templates (684d5c7)](https://github.com/plone/cookieplone-templates/commit/684d5c7f43a6ebc3184e2a0106b0160820a96e66) on 2025-05-22 13:24:17.198737. A special thanks to all contributors and supporters!  | 
 | 89 | +This project is licensed under the MIT License.  | 
0 commit comments