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: Download Now

Frontend

Build Status source download

We use the Elm language to create a robust and fast implementation. Elm compiles to JavaScript.

Some values need to be adjusted if you want to use InfoMark: - the domain - the email validator

Both values can be changed by replacing the content directly in Javascript. Therefore just donwload the Release from the git repository and run sed e.g.,

sed -i 's/localhost:3000/your.domain.com/g' /var/www/path/to/static/js/*.js

Backend

Build Status source download|

For use 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-backend
cd infomark-backend
go build infomark.go

Building InfoMark requires Go version at least 1.12. We use our custom GO-mod proxy to guarantee the availability of go-packages if the package authors remove or silently change some behaviours. To use the exact same dependencies run

export GOPROXY=https://gomods.patwie.com/

before building InfoMark.

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 behaviour with a Postgres database.

To run the tests you will need to set up the database.

# in an extra terminal run the dependencies or start them on your own
sudo docker-compose up


# mock database content
cd database
python3 mock.py

PGPASSWORD=pass psql -h 127.0.0.1 -U user -p 5433 -d db -f mmock.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.