Skip to content
This repository has been archived by the owner on Feb 21, 2020. It is now read-only.

Latest commit

 

History

History
76 lines (46 loc) · 3.16 KB

README.md

File metadata and controls

76 lines (46 loc) · 3.16 KB

#Agora Board - A Public Bulletin Board

License badge

Introduction

This is the code repository for Agora Board, the Public Bulletin Board for the Agora Voting project. Check also the other Agora Voting repositories.

Any feedback on this documentation is highly welcome, including bugs, typos or things you think should be included but aren't. You can use github issues to provide feedback.

Top

Design

Error loading image

Agora Board has three different layers. The intermediate layer is a Generic Public Bulletin Board, which works as a purely functional typed immutable log. For that, it uses FIWARE Orion Context Broker to store and retrieve data, which is the lowest layer. The highest layer, the Elections Machine manages elections using the Bulletin Board. On the Elections Machine, the elections are modeled as a sequential and deterministic state machine. The state is built by reading, interpreting, and updating the Bulletin Board.

API documentation

The lowest API is the FIWARE Orion Context Broker and you can find their API documentation on their repository.

The Board and Elections Machine APIs are documented using Swagger and can be viewed building the project and going to http://localhost:9000/docs/swagger-ui/index.html?url=/docs/swagger.json#!/routes/get_docs_swagger_json

Top

Build

The reference distro for this project is Ubuntu 14.04 LTS. You must have scala, Fiware Orion and Lightbend Activator installed. In the future Ansible will be used for deployment.

First we need an active instance of fiware-orion. The fastest way of getting it running is executing this command from the conf folder:

sudo docker-compose up

Now un the command from the project folder to get agora-board up and running:

activator run

You can access the API help visiting http://localhost:9000/docs/swagger-ui/index.html?url=/docs/swagger.json#!/routes/get_docs_swagger_json from a web browser.

You can also post a message to the board:

(curl localhost:9000/bulletin_post -X POST -s -S -H "Content-Type: application/json" --header 'Accept: application/json' -d @-) <<EOF
{
        "message": "m",
        "user_attributes": 
        {
            "section": "s",
            "group": "g",
            "pk": "public_key",
            "signature": "S"
        }
}
EOF

Top

License

Agora Board is licensed under Affero General Public License (GPL) version 3.

Top

Support

Top