The System is managed via two git-repositories.
Both parts are tested separately using continuous integration tests. It is a good idea to read the .drone.yml
configuration on how to build these parts from source.
Whenever a combination is stable, we will create a new release, which can be downloaded here:
Frontend
We use the Elm language to create a robust and fast implementation. Elm compiles to JavaScript.
Backend
For usage in production, we highly recommend using our pre-built releases as they are tested. If you want to compile the backend from source
git clone https://github.com/infomark-org/infomark
cd infomark
go build infomark.go
Building InfoMark requires Go version at least 1.13.
Unit-Test
To guarantee a stable version each commit is tested against some unit-tests.
While most projects just test a mock we really test the behavior of the endpoints with a Postgres database.
To run the tests you will need to set up the dependencies as described in the Overview Chapter. Please make sure, the database is empty but migrated to latest version. This can be done by dropping all data
sudo docker-compose down -v
sudo docker-compose up
./infomark console database migrate
In addition, we add mock entries to the database.
# mock database content
cd database
python3 mock.py
PGPASSWORD=pass psql -h YOUR_HOST -U YOUR_USER -p YOUR_PORT -d YOUR_DBNAME -f mock.sql
Then
cd API/app
go test --cover
will start the unit tests. Each test is handled in a transaction and will not change the database (using commit and rollback). However, some test cases depend on the actual mock.sql
data.
Features and Scope
InfoMark just want to be as generic as necessary (not possible). These features are not implemented on purpose:
- in-browser pdf annotation
- discussion board
- email conversation and inbox