Automatically creates plans based on requirements, resource constraints and target milestones.
SIAPLA serves a webpage. The installation methods below result in a webpage being available at http://localhost:8990.
mkdir ~/siapla-data
docker run --name siapla -v ~/siapla-data:/data -p 8990:80 -d valgarf/siapla:latest
mkdir ~/siapla-data
cargo install siapla
Note: You can also use cargo-binstall but currently the binary is always compiled from source.
Run it with
siapla-serve --database-url sqlite:$HOME/siapla-data/default.sqlite --bind 0.0.0.0:8990
Backup the database at ~/siapla-data/default.sqlite before upgrading!
The code automatically runs all necessary database migrations on startup. Simply starting the latest docker or install and run the latest cargo package is sufficient to upgrade to the latest version.
If you want to downgrade to a previous version: Stop the docker or process, restore the old database, start the old version. You must use the backup of your old database. All modifications done with the new version are then lost.
Note: downgrades are implemented but not tested very well.
You can try to downgrade a database using the just migrate command.
This is only intended for development and you will need to set up a development environment.
SIAPLA consists of a backend written in Rust - with Axum as web framework, Juniper for GraphQL, and Sea ORM as ORM - and a frontend using the Quasar Framework
This repository relies heavily on just for running development tasks. Just runs the commands written in the justfile.
For database operations, Sea ORM is used. Some just commands expect sea-orm-cli to be available, install it with cargo install sea-orm-cli.
Run
just init
to initialize the workspace.
To serve the backend, run
just serve-backend-release
and the website is available at http://localhost:8880. It automatically rebuilds and restarts the backend in case of changes to the backend code.
The backend only serves a frontend that has been built with just build-frontend.
When modifying the frontend, it is easier to also run
just serve-frontend
which will serve the frontend to http://localhost:9000 using the quasar dev server. Any changes to frontend code will be immediatly visible without rebuilding the whole frontend. The dev frontend communicates to the backend using the http://localhost:8880/graphql and ws://localhost:8880/subscriptions endpoints.
