Flowstruct is a self-hosted visualization tool that transforms university course catalogs into interactive flowsheets, making curriculum structures beautifully clear and navigable.
Click any course to instantly see its full prerequisite chain and what it unlocks. Down with the long, complicated PDFs!
→ Try out the Demo
Generate dynamic pages that highlight course dependency chains (automatically) with clear visual markers:
| Color | Meaning | Indicator |
|---|---|---|
| 🟨 (yellow) | Indirect prerequisites | 🡸 🡸 |
| 🟧 (orange) | Direct prerequisites | 🡸 |
| 🔷 (light blue) | Selected course | |
| 🔵 (dark blue) | Indirect postrequisites | 🡺 🡺 |
A content management system designed to manage the structure of the generated pages:
Automatic prerequisite validation checks when moving, adding, or removing courses from the content page:
- Easily rollback content changes (changes are not shown publicly unless approved by a publisher)
- Built-in RBAC with specific privileges to streamline workflows (Editor, Publisher, Guest, Admin)
- Content pages automatically calculate their indirect pre/postrequisites, you only define direct prerequisites
IMPORTANT! Flowstruct is currently in beta, expect breaking changes before v1.0
- Download the
compose.ymlfile - Run
docker compose up -d
The application is accessible through the following URLs:
| Service | URL |
|---|---|
| Content | http://localhost:3000 |
| CMS | http://localhost:3000/cms |
| API | http://localhost:3000/api |
An admin account is available for accessing the CMS:
- Username:
flowstruct - Password:
flowstruct
That's all. Have fun with Flowstruct! 🌊
Flowstruct can be configured using the following environment variables:
| Variable | Default Value | Description |
|---|---|---|
TRUST_PROXY |
false |
Whether Flowstruct is behind a reverse proxy. |
PUID and PGID |
1000 |
The user and group ID of the user who should run Docker inside the Docker container and owns the files that are mounted with the volume. You can get the PUID and GUID of your user on your host machine by using the command id. For more information see this article. |
DB_NAME, DB_USER and DB_PASSWORD |
flowstruct |
Name, user, and password to the PostgreSQL database. |



