/KollaborierbaR

A Collaborative Web IDE for Reasoning about Programs

Primary LanguageTypeScriptGNU Affero General Public License v3.0AGPL-3.0

Build Status

KollaborierbaR is a web-based IDE for collaboratively editing Java source code and running automated proofs of JML specifications. KollaborierbaRs automated proof system is based on the KeY project.

Demo

This demo presents some of the basic features of KollaborierbaR:

Quickstart 🚀

(requires python3 for running a local webserver and Java 8 for running the backend. Versions other than Java 8 will lead to errors.)

  1. Download the latest KollaborierbaR.tar.gz from releases
  2. OR build an up to date version yourself:
make setup
make deploy
cd deliverables
  1. Extract the archive and run KollaborierbaR
tar -xf KollaborierbaR.tar.gz
cd KollaborierbaR
./run.sh
  1. If you want others to join you in KollaborierbaR, stop the server, configure your public IP address in config.js, and restart it.

Documentation 📕

A description of the project, QA methods, two user studies and a documentation of the backend API can be found in this document: documentation.pdf. It is written for the most part in German, though. The backend API specification is written in English.

Other than that, the source code itself is annotated with comments and documentation in English.

KollaborierbaRs build system 🛠️

KollaborierbaR consists of 2 components, a web frontend (located in the client folder) and a backend server (see server folder).

A set of makefiles abstracts from the different tooling used in those projects. The following make commands are available:

command effect
make setup Download all dependencies required for building KollaborierbaR
make check Run style checks and static analysis tools
make Build client and server
make test Run tests on the server API
make pipeline Run all of the above
make deploy Build a tar.gz archive, which makes it easy to distribute KollaborierbaR
make format Run automatic code formatters
make clean Clean build artifacts

Remember to always run make setup first, after downloading the repository

You can use all of the above commands (except for deploy) also within the client or server folders, so that the described effects only apply to the client or server respectively.

Credits

The KollaborierbaR IDE has been developed by

This project has been realized in the context of a practical lab course of the B.Sc. Computer Science programme at TU Darmstadt. More specifically, the project was commissioned by the Software Engineering Group.

In particular we want to thank

for supervising the project.