A web application for first-order model checking in graph structures.
This project and the accompanying bachelor's thesis were inspired by the research group Theoretical Computer Science / Formal Methods by the University of Kassel. The parsing and validation logic of the backend is built upon a Java desktop application by Arno Ehle and Benedikt Hruschka.
Note: This project is also known as gramoFO.
- 🛠 Graph Editor: Interactive graph editor with support for touch controls
- ✨ Model Checking: First-order-logic model checking in graph structures
- 💹 Feedback: Three different feedback levels provide insight on model-checking results
- ☑️ Assignments: Various assignments, which build an understanding for first-order logic and model checking
- 🔒 Import/Export: Graphs can be saved locally as wells as exported and imported as JSON and YAML
- 📱/💻 Responsive: Optimized for screens of all sizes
- 📶 PWA: Apollo is installable and supports offline editing of graphs
- 🌐 Localization: Fully localized in English and German
- 🌗 Themes: Dark and light designs
Run yarn install
to install the required dependencies.
Run yarn start
to run a development server. The app will open and automatically reload if any source files are changed.
Note: Default port is 4200.
Run ng g c components/{{component-name}} --module=app
to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module
. To create components with special names such as Page
add --type={{type}}
.
Run yarn lint
to lint and yarn pretty
to format all source files.
Run yarn build
to build the project. The build artifacts will be stored in the dist/
directory. Use the --prod
flag for a production build.
Run yarn test
to execute the unit tests via Karma.
Run yarn compodoc
to generate the documentation. It will be stored in the documentation/
directory.
Run docker-compose up -d --build
to build and start a container. Alternatively, build the image via the Dockerfile.
Note: Default port is 80.
Note: Change the argument
BACKEND_URL
as required.
BSD 3-Clause License - Copyright © Jan Müller