Giter VIP home page Giter VIP logo

backlogtool's Introduction

The MIT License

Copyright 2013 Sony Mobile Communications AB. All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Introduction

Backlog tool is a planning tool that allows users to plan their daily work and easily rank their tasks using drag and drop. Backlog items can be inserted using a hierarchical structure consisting of themes, epics, stories and tasks. These items can be viewed in three different views for a good overview of the project, namely theme-epic, epic-story and story-task.

It's very easy to edit items in the backlog by double clicking on them, make some changes and press save. The changes you make will be pushed out in real time to all other clients viewing the same area as you.

Backlog tool is designed to be open and easy to access, which means that all users can view all created backlogs without being logged in. Each backlog is stored in a custom area, which can be created by logged in users on the main page. Once an area gets created, the owner can specify which users that should have edit rights and admin rights for the area.

In order to make backlog tool fit every team with their own requirements and way of working, the information fields for user stories are highly dynamic. By default, a field name "Status" will be created and have options like "ongoing" and "finished", however this can easily be changed and more options with custom icons can be added using the admin page for each area.

This tool supports login with existing LDAP user accounts, which means that users working in environments with LDAP logins can use the same account details as usual.

Screenshots of the tool can be viewed here

Installation instructions

First, make sure you have the following installed:

For users

  1. Download the latest backlogtool.war file from https://github.com/sonyxperiadev/BacklogTool/releases and backlogtool.properties from https://github.com/sonyxperiadev/BacklogTool/raw/master/backlogtool.properties
  2. Copy the .war-file to [Tomcat location]/webapps
  3. Copy the backlog.properties-file to [Tomcat location]/conf and edit it with your own options. The database you set in the config file must exist; it will not be created automatically. Also, the conf folder does not exist by default so you might have to create it.
  4. (Optional) If you want to allow area names with special characters, set URIEncoding like this: http://struts.apache.org/2.0.6/docs/how-to-support-utf-8-uriencoding-with-tomcat.html
  5. Make sure the database and LDAP servers are running and start Tomcat.
  6. Backlogtool should now be available at http://localhost:8080/backlogtool. If you want to run backlogtool as the web root, rename 'backlogtool.war' to 'ROOT.war' and restart the server

For devs

  1. Download the source code using Git as usual
  2. Install SpringSource Toolsuite (http://www.springsource.org/spring-tool-suite-download)
  3. Launch SpringSource Toolsuite and choose File->Import. Expand "Maven" as import source and choose "Existing Maven Projects". Press Next.
  4. Press the Browse button next to root directory and browse to the location of the source code. Press Ok and wait a few minutes until analysing is complete.
  5. "pom.xml" should now be listed under Projects. Make sure it's selected and press Next, then Finish. All dependencies should now be downloaded to your client.
  6. Copy the backlogtool.properties file to your CATALINA_HOME location: [springsource location]/vfabric-tc-server-developer-2.X.X.RELEASE/tomcat-7.X.XX.X.RELEASE/conf and edit it with your own details. The database you set in the config file must exist; it will not be created automatically. Also, the conf folder does not exist by default so you might have to create it.
  7. (Optional) If you want to allow area names with special characters, set URIEncoding like this: http://struts.apache.org/2.0.6/docs/how-to-support-utf-8-uriencoding-with-tomcat.html. These settings are available in package explorer in Spring Tool Suite: Servers->VMWare vFabric tc... -> server.xml
  8. Make some changes in the Springsource Toolsuite if you wish and right click on the project in package explorer and select Run as -> Run on server
  9. Backlogtool should now be available at http://localhost:8080/backlogtool

Source code overview

Backlog tool is built as a Spring MVC project on the server side. All requests for dynamic content are handled by Ajax technology with JSON data. The Atmosphere framework is used for triggering refresh on all clients that have the same area open when an object is modified. All objects are persisted using Hibernate framework which can easily be set to work with an in-memory database by changing the config file "backlogtool.properties" if needed.

The java class "JSONController" manages all Ajax requests (except rank updating) with one server side method bound to a URL per request type. HomeController handles all page requests in a similar way, and MoveController takes care of rank updating in lists.

Authentication is handled by Spring Security, which is set to work with a LDAP server. Many of the JSONController methods are annotated with “"hasPermission(isAdmin)" or similar which triggers a check on the user using the backlogtool.permission package before allowing access.

On the client side, most features have been developed with jQuery and plugins like jQuery UI, jQuery blockUI, jQuery truncator, jQuery dropdown and jQuery autosize. jQuery blockUI is for locking the UI when displaying an "updating" message when asking for server response. jQuery autosize is used for changing size on the text fields on the fly when editing backlog items.

backlogtool's People

Contributors

christofferl avatar dpursehouse avatar fredrikpersson avatar glundh avatar nilsi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

backlogtool's Issues

Error message when the user session has timed out

When the story-task view is left open over night and the user tries to edit and save something the next day, it says "unexpected token <".

This is most likely because the login-page gets returned in the ajax request since the user session has timed out. The tool should ask for login again in a better way.

Additional feature for Area Edit

Hi!,
Would it be possible have additional feature on Area edit

  1. Customize estimated time.
  2. Developer (Owner) that can be pulled, instead of retyping user's

Thanks,

Gerald

Burn down chart

A burn down chart could be added to make it easier to get an overview of the statuses for active stories.

One way would be to make a bar chart with a bar for each time interval (say 1 day, week or month). These bars all have the same height and are divided into different colours for different statuses. It would then be easy to follow the colour shifts to see how the work is progressing between different statuses.

Based on idea by @rsandell

Selecting text in Firefox

Selecting description text in edit mode in Firefox behaves weird. Sometimes it selects the complement to what I try to select and sometimes it gets unselected very quickly again.

Positioning of the view links

When the browser window gets to small, the links for area, theme-epic, epic-story and story-task starts jumping down one line which is OK, but I think all four should always be on the same line. That would make it less confusing for the user when trying to find out which level comes next.

Move to top button

When you have a story view with hundreds of stories in and create a new story; it ends up at the bottom of the list, as it should. But if you then want to move it to somewhere close to the top of the prio list you need to drag for ages.

Somewhere adding a "move story to top" button would ease that dragging operation a lot.

Task drag & Drap value erased

Hi,
I added a new task, entered some information which I didn't save yet and I arrange the task drag and drop it, it updates the panel but the values of the new task is set to default, the one that I had previously typed is erased.

Thanks,
Gerald

Drag and drop stops when another user saves their changes

When user A saves some changes of an area, then user B who is using drag and drop in the same area and is currently dragging an item gets interrupted. This is because the update gets pushed out and the list gets redrawn for user B.

This can be fixed by temporarily disabling push updates when dragging an item and enabling it again when dragging stops. It currently works like that when going to edit mode for an item.

Filter on ids

Implement a filter which can sort out specific story ids. Should be possible to generate a direct link to current filter.

Disable create button while editing

If a user is editing a backlog item and decides to create a new one the UI will refresh and the changes is lost. This could be solved by disable the create button while the user have items in edit mode, or something.

Resolutions lower than 1680px

Lower the resolution under 1680px makes the interface look strange.
We should check how many of our users that is under this resolution and decide if we shall do a fix.

We should also look into what we can do when making the window smaller. (Also looks strange when making it small)

Is pushing new information to Chrome broken?

It seems like the newer versions of Chrome are unable to recieve push notifications when other users make changes to the same area. At least it's not working for me locally with Chrome version 26.0.1410. Can someone please confirm this? It still seems to be working in Firefox.

If confirmed, we should look into updating ICEPush..

Increase visibility of login button

The login button should not be hidden under the menu. It's OK to have the logout button there but it must be easy to login.

I think it would be enough if we move it to the upper right where most pages have that button.

Support automated task state transitions

As a Gerrit user, I want to be able to upload changes to Gerrit with a specific footer tag in the commit message (for example "Closes: Task 1234"), and have a Gerrit plugin automate the state transition of the task when the change is submitted.

Matrix base role manager

Hi,
Is it possible to have a matrix base role manager i.e allow a user to have create capability but will not delete an entry for a New Area/Theme/Story, which is similar to jenkins matrix role?

Thanks

Gerald

Note fields

There should be a way to add arbitrary foot notes to a story or task. For instance URLs pointing towards code patches or Issue IDs.

Oracle support

Hi!,
We are evaluating the tool for use with our team, to replace our existing backtracking tool.
We would like to ask does it support Oracle for the Database? we intend to use our existing database infrastructure which is Oracle.

Thank you very much.

Gerald

Can't authenticate using LDAP

Hi!,
Good day.
I'm new with ldap authentication, I got the below setup from our jenkins server and we can authenticate thru ldap.

server: ldap://xxx.com:389
roodDN: ou=People,ou=yyy.zzz
userSearch: uid={O}

Please advise on how to use the above setting for use by backlogs.

Thank you very much.

Gerald

Width of archive list

The list of archived stories is a little thinner than the non-archived stories, which makes it look a bit weird.

Special characters in themes, epics

When creating a new epic in a theme with a special character in its name, a new theme is created with the same name containing the new epic. Same behavior is with the epic-story. Havent been testing the story-task.

To reproduce:

  1. Create a theme named: 10°C
  2. Click + button to add a new epic.

Import from Redmine / Backlogs plugin

As a user who currently has an existing backlog in Redmine with the backlogs plugin, I want to be able to import my epics, stories, and tasks into the new backlog tool.

Avoid loosing data with accidental double click

When adding information a double click will result in a revert back to non edit mode without save. This is dangerous due to a common behaviour of users to doubleclick on a world to highlight the whole world. There is also a risk of double click when clicking on the different fields.

A possible solution would be to auto-save on each field change (unfocus action) or have a specific edit/view button close to delete or add story.

Stories are auto closing from edit mode

When the save all-button is used, the individual save buttons start malfunctioning.

Steps for reproducing:

  1. Open a few stories at once and edit one of them.
  2. Use the save all-button
  3. Open the same stories again and edit the same story again.
  4. Press the individual save button, now all stories close

README.md mentions to download war-file, but no link

"For users

Download the backlogtool.war backlogtool.properties files from Github to a suitable location"

But there's no link to a war-file anywhere on the page (at least not that I'm able to spot).

Wanted: Please update readme with a link to the war-file for convenient download.

Thank you!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.