Skip to content

Huy-Ngo/acanban

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Acanban

Acanban is an academic Kanban board. It aims to provide a collaboration platform for students and mentors, with first-class support for academic evaluation.

Prerequisites

Acanban runs on Python 3.7+ and requires RethinkDB and IPFS 0.7 or above.

Setup

The development version of Acanban can be installed from this git repository:

python -m pip install git+https://github.com/Huy-Ngo/acanban

Acanban can then be evoked via python -m acanban. In production, it is typical to run it as a systemd service, configured like followed.

[Unit]
Description=The Acanban Server
After=network.target

[Service]
ExecStart=/path/to/venv/bin/python -m acanban
Restart=on-failure

[Install]
WantedBy=default.target

Configuration

Acanban's configuration files are looked for in user and site config dir (in that order), with acanban namespace.

With third-party configuration separated to dedicated files, acanban.toml may define the following keys:

# Used for HTTP to HTTPS redirection if defined
domain = 'example.com'

Hypercorn

Hypercorn configuration is loaded from hypercorn.toml. Acanban does not override any of the server's defaults.

RethinkDB

Values defined in rethinkdb.toml will be passed to the RethinkDB client. Below are some of the fields that commonly need to be configured and their default values:

host = 'localhost'
port = 28015
user = 'admin'
timeout = 20
db = 'test'

IPFS

Custom ipfs.toml must define the following keys, whose default values are listed as follows:

[api]
base = 'http://127.0.0.1:5001/api/v0'

[gateway]
base = 'http://127.0.0.1:8080/ipfs'
fallback = 'https://ipfs.io'

Hacking

First clone the repository and install Acanban as editable:

git clone https://github.com/Huy-Ngo/acanban
cd acanban
python -m pip install flit
flit install --symlink

After playing around with the source code, one can use tox to test the modified version:

python -m pip install tox
tox