This is a tool to help you learn natural deduction. Since drawing derivation trees is very cumbersome, this tools helps with:
- Highlitening makes matching easier
- Rules can not incorrectly be applied
- Checking if the tree is still feasable
This project consists of three parts: Frontend, Backend and Database.
- Copy the
template.envto.envand add the missing fields. - Start the database
docker compose up postgres - Add the
POSTGRES_URLto your shell environment - Setup the database tables. This is using prisma.
cd frontendnpm iinstall all the packagesnpx prisma db push --schema ../db/schema.prismapush the database schema to the docker.
- Now we can start the backend.
cargo run - Finally the frontend can be run.
- Make sure to set the API base path in the shell environment (see
frontend/rest.env) - Run
npm run dev
- Make sure to set the API base path in the shell environment (see
If you change the database schema you need to manually push the file again to the database.
npx prisma db push --schema ../db/schema.prisma --database-url ...Additionally, in the backend run to update the rust crate with the new database structure.
sea-orm-cli generate entity -o ./src/db/ --database-url ...You may need to install sea-orm-cli.
To be able to use new or changed endpoints in the frontend the following steps must be done:
- Copy the openAPI config from
localhost:8000/docs/apiintofrontend/src/lib/api/apigen/schema.json - Run
npm run apigen
This is not official software for the FMFP course at ETHZ. There are no guarantees for correctness.