(Last Updated On: October 26, 2018)

TaskBoard is a free and open source Kanban inspired tool for keeping track of tasks and work activities that need to get done. It gives you a simple and clean interface for managing your tasks. TaskBoard is currently being re-written from scratch. The master and dev branches are still maintained but are not getting new features at this time.

Components of TaskBoard

TaskBoard has a backend and Frontend sub-systems. The components of Front-end are:

  • AngularJS single-page app.
  • ng-context-menu, jQueryUI Datepicker, Spectrum colorpicker, (noty) notifications, marked Markdown parser, and -prefix-free CSS prefix helper.
  • Bootstrap for base look and feel.

For the Backend, it is baked from:

  • RESTful API written in PHP, using Slim Framework for routing and RedBeanPHP for database ORM. Also uses PHPMailer for sending emails.
  • Token-based authentication.
  • SQLite database.

Step 1: Install Apache Web Server, PHP & Java

Update your system and install Apache web server with PHP

sudo apt update
sudo apt-get install git apache2 sqlite3 php libapache2-mod-php php-cli php-common php-json php-readline php-sqlite3 libaio1 libapr1 libhtml-template-perl libaprutil1-dbd-sqlite3 libaprutil1-ldap libaprutil1 libdbi-perl libterm-readkey-perl libwrap0

Install Java 8

sudo add-apt-repository ppa:webupd8team/java
sudo apt update
sudo apt install oracle-java8-installer

After installation, you can confirm the version by running:

# java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

Step 2: Download and Install TaskBoard

After installing the package dependencies, download TaskBoard

# cd /srv
# git clone https://github.com/kiswa/TaskBoard.git
Cloning into 'TaskBoard'...
remote: Enumerating objects: 42, done.
remote: Counting objects: 100% (42/42), done.
remote: Compressing objects: 100% (37/37), done.
remote: Total 7931 (delta 6), reused 19 (delta 4), pack-reused 7889
Receiving objects: 100% (7931/7931), 9.80 MiB | 1.51 MiB/s, done.
Resolving deltas: 100% (5397/5397), done.

Install the composer PHP dependency manager

sudo apt install composer

Install the PHP dependencies via composer

cd /srv/TaskBoard
./build/composer.phar self-update
./build/composer.phar install

Optionally build minimized JavaScript and CSS

# ./build/build-all
Building...
 Installing dependencies
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Nothing to install or update
Generating autoload files
 Compiling lib JS files...
 Minifying lib CSS files...
 Compiling app JS files...
 Minifying app CSS files...
 Updating index.html...
Build Complete

Set proper permissions on Taskboard web root directory

sudo chown -R www-data:www-data /srv/TaskBoard/

Step 3: Configure Apache Web Server

Create a new Virtual Host for Taskboard.

sudo vim /etc/apache2/sites-enabled/taskBoard.conf

Configure it to look like below:

 <VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/srv/TaskBoard"
    ServerName taskboard.example.com
    ServerAlias www.taskboard.example.com
    <Directory "/srv/TaskBoard">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog "/var/log/apache2/taskboard-error_log"
    CustomLog "/var/log/apache2/taskboard-access_log" combined
</VirtualHost>

Check configuration syntax:

$ sudo apachectl -t
Syntax OK

Enable both the mod_rewrite andmod_expires modules.

sudo a2enmod rewrite expires

Restart Apache for the changes to be effected.

sudo systemctl restart apache2

Finish the installation by opening the URL http://board.example.com on your web browser.

The default logins are:

Username: admin
Password: admin

Log in using admin as both username and password. you can later change the admin password on the Settings page.

Enjoy your new better way of managing tasks with Taskboard.