A Kanban-inspired app for keeping track of things that need to get done.
The goal of TaskBoard is to provide a simple and clean interface to a functional and minimal application for keeping track of tasks. It's not trying to be the next Trello or LeanKit.
A web server running PHP 5.5, 5.6, or 7.0 with sqlite enabled.
The server must have sqlite3
and php5-sqlite
(or php7-sqlite
) installed, as well as the rewrite
Apache module.
If you're comfortable changing code, you can use any database supported by RedBeanPHP.
Installing TaskBoard is as easy as 1, 2, 3!
- Download the latest release (or whatever version you want)
- Extract it to your webserver
- Verify the
api
directory is writable
Open a web browser to the location you installed TaskBoard and use admin
as the username and password to log into TaskBoard.
Go to the Settings
page to update your user (username, email, password, etc.) and create your first board!
Each board may have as many columns as needed. For example, a software project might have columns like:
- Proposed
- Backlog
- In Work
- Test
- Done
- Archived
Or maybe you want to track a simple todo list with just:
- Todo
- Doing
- Done
It's all up to you! However many columns you have, each column may have tasks added to it, and tasks can be dragged to other columns as they progress (or edited and assigned to a new column).
Boards may also have categories for additional organization, e.g. Bug
, Enhancement
, New Feature
.
A task only has to have a Title to be added to a board, but there is much more available. Tasks may be assigned to any user on the board (or left Unassigned), and include options for Due Date, Color, Points (an optional difficulty rating), and Category.
TaskBoard uses a Markdown parser for the Description, allowing for better display of details (like this readme).
Once a task has been entered, it may have Comments (also supporting Markdown) or Attachments added to it by viewing the task detail. There is a link to edit the task, which takes you to a modal much like the original add task dialog. For admin users, there is also a link to delete the task. This view also shows the task's activity log on the side of the screen, displaying the complete history of events related to the task.
Developing on TaskBoard is pretty simple too.
- Clone the repository
- Run
npm i
to install dependencies (Linting the SCSS requires Ruby and runninggem install scss-lint
) - Run
git checkout dev
to work on thedev
branch
Both the API and App are unit tested. To run all tests, use the command gulp test
. For only one set, run gulp test-api
or gulp test-app
.
If you want to run a single API test, add the following comment block before the test function and use the command gulp test-api-single
.
/**
* @group single
*/
These tests are run by Travis CI on PRs and commits. A PR with failing or missing tests will not be merged.
Fork the repository and make your changes on the dev
branch.
Create a pull request against the dev
branch to merge your changes with the main repository.
Make sure to include/update unit tests.
Constructive feedback is appreciated! If you have ideas for improvement, please add an issue or implement it and submit a pull request.
If you find a bug, please post it on the Issue Tracker.
- Angular 2 single-page app
- Bourbon and Neat SCSS library & framework
- scss-base for the base styling
- marked Markdown parser
- Chartist.js for all charts
- Slim Framework and RedBeanPHP for a RESTful API
- PHPMailer for sending emails.
- JWT authentication
- SQLite database
Because I like seeing the numbers.
Language | Files | Blank | Comment | Code |
---|---|---|---|---|
PHP | 26 | 655 | 22 | 2109 |
TypeScript | 45 | 381 | 10 | 1644 |
HTML | 15 | 93 | 0 | 1010 |
SASS | 13 | 199 | 8 | 899 |
SUM: | 99 | 1328 | 40 | 5662 |
Command: cloc --exclude-dir=vendor --exclude-ext=json src/
Language | Files | Blank | Comment | Code |
---|---|---|---|---|
PHP | 22 | 958 | 19 | 2726 |
JavaScript | 27 | 295 | 27 | 1205 |
SUM: | 49 | 1253 | 46 | 3931 |
Command: cloc --exclude-ext=xml test/
Counts last updated Sep 21, 2016