DrMint / Scrum-Bandicoot

A project management web app that implements a combination of Scrum and Kanban methods.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Scrum Bandicoot

Technical Documentation

To setup and run Scrum Bandicoot, follow the following steps:

  1. Clone the master branch on the repository:
    git clone https://github.com/DrMint/Scrum-Bandicoot.git
  2. Go inside the clone folder:
    cd Scrum-Bandicoot
  3. Initialize the database:
    cp db_empty.json db.json
    Alternatively, you can also use the demo database used for the rest of this documentation and for the TESTING.md document:
    cp db_example.json db.json
  4. Lastly, you can run the PHP server by using the following command (using port 3001):
    php -S localhost:3001

If you want to use the demo database, the default account is named `demo`, the password is also `demo`.

User Documentation

Login Page

On the Login Page, the user is asked to enter their username and password and click Sign In. If the credentials are correct, the user is redirected the their Profile Page.

If the entered username or password is wrong, the following alert appears:

title: Limitation

There is currently no way for the users to reset their passwords by themselves as they are not required to provide an email address on during their account creation. 

Lastly, from this page, the user is also able to click the Create an account to be redirected to the Register Page.

Register Page

One the Register Page, the user is asked to provide a username and password and click Create account. If the credentials are correct, the user is redirected the their Profile Page.

If the entered username is already register, they are asked to try another name:

Profile Page

On their Profile Page, users are greeted with the following elements:

  • At the top, the navbar displays the app title Scrum Bandicoot, a welcome message, and a logout button.

    • The Scrum Bandicoot title can be clicked to bring the user back to their Profile Page.
    • The Logout button logout the user and redirect them to the Login Page.
  • Bellow the navbar, the project for which the user is a member are listed under the title My Projects. The projects are displayed as cards with the project thumbnail displayed at the top, and the title of the project at the bottom. Next to My Projects, the user can click on Create a project to open the Project Creation Form.

  • And lastly, there is a list of Public projects, which are projects the user haven't joined yet. The projects are also displayed as cards, however, a join button is present at the bottom of the card to allow the user to join the project. If a user join a project, the user will stay on the page and the joined project will now be moved from the Public projects section to the My Projects section.

Project Creation Form

Projects can be easilly created using this form. The user simply needs to input the project's name.

title: Limitation

The projects' name and usernames are converted into slug when processed by the system. A slug is a string that can be safely included in the URL. Slugs are lowercase strings that only includes a to z characters, 0-9 digits, and the dash symbol "-" to encode spaces.

Project Page

On a project page, the user can see the following elements:

  • The title of the project is displayed at the top
  • There is the Leave project button next to the project's title that allows the user to leave a project.
  • The My Sprints section lists the past, current, and future sprints. It also includes the Backlog Product.
    • The Backlog Product is a list of Tasks that hasn't been included in a Sprint yet. In the Scrum project management approach, the list of tasks that constitute the Backlogs Products is supposed to be compiled and ordered by priority before starting the project.
    • Past sprints will display when the sprint ended in a human-readable format (i.e., "Ended 20 days ago", "Ended 2 hours ago"...)
    • Current sprints will display when the sprint will end (i.e., "Ends in 3 days").
    • Future sprints will display when the sprint will start (i.e., "Starts in 4 days").
    • Next to the My Sprints title, there is a Manage sprints button that leads to the Sprints Management page.
  • Lastly, there is the My Tasks section where the user can quickly see all the tasks he has been assigneed to. The user can click on the task to be redirected to the specific Sprint the task is located (or the Backlog Product if the task isn't yet part of a sprint).

title: Limitation

Currently, all tasks assigned to the user are displayed under My Tasks, including Tasks considered completed. It would be better to only display the tasks that are from the currently on-going sprint.

Backlog Product

The Backlog Product is a very simplified Kanban board with just one column. The user can add, edit, remove tasks easilly from this interface. Please check the Kanban Board chapter to learn about how to interact with a Kanban board.

Sprints Management

On the Sprints Management page, the user can see the following elements:

  • The title of the project displayed at the top
  • The Return to project button that redirect the user to the appropriate Project Page.
  • The list of past, current, and future sprints displayed as cards.

Those sprint cards display more information than on the Project Page:

  • The date when the sprint starts and ends (including a human readable version).
  • The cards also includes two buttons: the Edit and Cancel buttons.

Sprint Edit Form

If the user clicks on one of the Edit buttons on the sprint cards, a form appears. On this form, the user can modify when the sprint starts and ends. Those dates must be today or further in the future.

title: Limitation
Currently, it is possible to edit Sprints even after their deadline. Which mean they can be re-enabled. This is a questionable behavior that shouldn't be permitted.

Sprint Creation

If the user clicks on the Add Sprint button, the following form appears. The user is prompted for the following information:

  • The sprint starting date
  • The sprint ending date
  • A subset of the Backlog Product's tasks.
title: Info
You can select multiple tasks using the Ctrl key on the keyboard. Simply press the Ctrl key and then click on as many tasks as you want to select. You can also deselect a task by pressing Ctrl and clicking on the task you would like to deselect.

If the user confirms the creation of the Sprint, the selected Backlog Product's tasks are transfered to the new sprint. They are no longer in the Backlog Product.

Sprint Cancelling

If the user clicks on the Cancel button on one of the sprint cards, the sprint is cancelled. This means that all tasks in that sprint are transfered back to the Backlog Product.

Sprint Kanban Board

The Kanban Board is an integral part of Scrum Bandicoot. On the Kanban Board page, the user is greeted with the following elements:

  • The Return to project button that redirect the user to the appropriate Project Page.
  • The Create column button that leads to the Column Creation Form
  • The Kanban Board
    • Columns are listed horizontally and seperated by a thin vertical line. Their title is displayed at the top in bold.
    • Tasks are listed vertically in their corresponding column. The task's title is displayed at the top of its card, and the assignees are listed in pill-shaped containers.
    • Within a column, bellow all its tasks, is located the Create task button that opens the Task Creation Form

Option Menu

By hovering over a column's title, the option menu appears at the top of its title card.

By hovering over a task's card, the option menu appears at its top.

The option menu offers four functionalities for tasks:

  • To View
  • To Edit
  • To Delete
  • To Move using the left and right arrows.

For columns, the View option isn't visible because there is no need for such function.


The option menu doesn't show up for the **Backlog Sprint** and **Done** columns because those two are locked: they cannot be moved, nor edited, nor deleted. The **Backlog Sprint** column is necessary because there is where the tasks are placed when a sprint is created. The **Done** column is also locked because it is needed to know when to consider a task to be done.

title: Limitation

It was initially planned to be able to drag and drop tasks to another column instead of using button arrows. We had ideas on how to do detect a drag and how to send the message to the server. However you got stuck at the part where we need to display a floating version of the task that follows the cursor's movement. Due to time contraints we decide to leave it in a working state with those buttons, instead of releasing Scrum Bandicoot V1 with a broken drag and drop system.

Column Creation Form

Column Edition Form

Task Creation Form

Task Edition Form

As with the multi selection menu for the Sprint Creation form, you can select multiple members by pressing Ctrl while clicking on a member. You can also deselect a member by pressing the Ctrl key and clicking on an already selected member.

Task View Popup

About

A project management web app that implements a combination of Scrum and Kanban methods.

License:MIT License


Languages

Language:PHP 84.7%Language:CSS 15.2%Language:Shell 0.1%