Git Product home page Git Product logo

teamtrick's Introduction

TeamTrick: Scrum on Rails

TeamTrick is an open source web application to implement Scrum. It was created to help teams to cope with all the tedious tasks of Scrum like burndown graph generation and team velocity calculation.

More information and screenshots on the TeamTrick micro-site team-trick.net

Main Features

These are the main features of TeamTrick:

  • It really fits Scrum: From backlog to burndown, every key point of Scrum has been implemented on TeamTrick. Nice graphs will be generated based on work hours as long as other important values like team velocity or focus factor.

  • It’s a web application: Team members can access TeamTrick wherever they are just pointing their web browser to the right address. Install TeamTrick on a server and you’re done.

  • It’s open source: TeamTrick is released under the AGPL license. You can use it, modify it and redistribute it for free.

  • Built with Ruby on Rails: Ruby on Rails is one of the most powerful frameworks for web applications. It’s multi platform and makes code really easy to understand and maintain.

Installation

The easiest way to install TeamTrick is to download the bundled zip file from teamtrick.net. It takes very few time to have TeamTrick up and running.

Installation from Source

If you are a Rails developer or want try to install TeamTrick by yourself here is how:

  1. Configure the database

rake teamtrick:configure
  1. Install the required gems

rake gems:install
  1. Run the installation Rake task

rake teamtrick:install

And that’s all. You can now start the server with script/server and point your browser to localhost:3000 to start using TeamTrick.

License

Copyright © 2009 Manuel Angel Morales Castro

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see www.gnu.org/licenses.

teamtrick's People

Contributors

manuelmorales 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

Watchers

 avatar  avatar

teamtrick's Issues

Create a bundle Rake task

Create a Rake task that bundle all gems, initialize data base and zips everything into a standalone file.

Running CommitmentsController tests with rake returns broken results

Running them with spec returns success.

$ rake spec SPEC=spec/controllers/commitments_controller_spec.rb

1)
NoMethodError in 'CommitmentsController responding to DELETE destroy should success for users with role scrum_master'
You have a nil object when you didn't expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.update_attribute
/home/manuel/scrum/teamtrick/spec/support/macros/controller_macros.rb:61:in `it_should_success_for_users_with_role'

2)
NoMethodError in 'CommitmentsController responding to DELETE destroy should success for users with role product_owner'
You have a nil object when you didn't expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.update_attribute
/home/manuel/scrum/teamtrick/spec/support/macros/controller_macros.rb:61:in `it_should_success_for_users_with_role'

3)
NoMethodError in 'CommitmentsController responding to PUT update should success for users with role scrum_master'
You have a nil object when you didn't expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.update_attribute
/home/manuel/scrum/teamtrick/spec/support/macros/controller_macros.rb:61:in `it_should_success_for_users_with_role'

4)
NoMethodError in 'CommitmentsController responding to PUT update should success for users with role product_owner'
You have a nil object when you didn't expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.update_attribute
/home/manuel/scrum/teamtrick/spec/support/macros/controller_macros.rb:61:in `it_should_success_for_users_with_role'

5)
NoMethodError in 'CommitmentsController responding to POST create should success for users with role scrum_master'
You have a nil object when you didn't expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.update_attribute
/home/manuel/scrum/teamtrick/spec/support/macros/controller_macros.rb:61:in `it_should_success_for_users_with_role'

6)
NoMethodError in 'CommitmentsController responding to POST create should success for users with role product_owner'
You have a nil object when you didn't expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.update_attribute
/home/manuel/scrum/teamtrick/spec/support/macros/controller_macros.rb:61:in `it_should_success_for_users_with_role'

7)
NoMethodError in 'CommitmentsController responding to GET edit should success for users with role scrum_master'
You have a nil object when you didn't expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.update_attribute
/home/manuel/scrum/teamtrick/spec/support/macros/controller_macros.rb:61:in `it_should_success_for_users_with_role'

8)
NoMethodError in 'CommitmentsController responding to GET edit should success for users with role product_owner'
You have a nil object when you didn't expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.update_attribute
/home/manuel/scrum/teamtrick/spec/support/macros/controller_macros.rb:61:in `it_should_success_for_users_with_role'

9)
NoMethodError in 'CommitmentsController responding to GET new should success for users with role scrum_master'
You have a nil object when you didn't expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.update_attribute
/home/manuel/scrum/teamtrick/spec/support/macros/controller_macros.rb:61:in `it_should_success_for_users_with_role'

10)
NoMethodError in 'CommitmentsController responding to GET new should success for users with role product_owner'
You have a nil object when you didn't expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.update_attribute
/home/manuel/scrum/teamtrick/spec/support/macros/controller_macros.rb:61:in `it_should_success_for_users_with_role'

11)
'CommitmentsController responding to GET show should success for a normal user' FAILED
expected success? to return true, got false
./spec/controllers/commitments_controller_spec.rb:63:

Finished in 2.917772 seconds

47 examples, 11 failures

teamtrick:bundle rake task has to be run 2 times

It only work even times.

$ rake teamtrick:zip_all --trace
(in /home/manuel/scrum/teamtrick)
** Invoke teamtrick:zip_all (first_time)
** Invoke teamtrick:bundle (first_time)
** Invoke teamtrick:clean (first_time)
** Execute teamtrick:clean
Deleting log/production.log
Deleting log/development.log
Deleting config/database.yml
Deleting db/production.sqlite3
Deleting public/blank_iframe.html
Deleting public/images/calendar_date_select
Deleting public/javascripts/calendar_date_select
Deleting public/stylesheets/calendar_date_select
Deleting vendor/gems
Deleting vendor/rails
** Invoke teamtrick:force_production_environment (first_time)
** Execute teamtrick:force_production_environment
** Invoke teamtrick:install (first_time)
** Invoke teamtrick:configure (first_time)
** Execute teamtrick:configure
Created config/database.yml
** Invoke environment (first_time)
** Execute environment
rake aborted!
no such file to load -- ruby_version_check
/usr/lib/ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
/usr/lib/ruby/1.8/rubygems/custom_require.rb:36:in `require'
/home/manuel/scrum/teamtrick/vendor/rails/activesupport/lib/active_support/dependencies.rb:156:in `require'
/home/manuel/scrum/teamtrick/vendor/rails/activesupport/lib/active_support/dependencies.rb:521:in `new_constants_in'
/home/manuel/scrum/teamtrick/vendor/rails/activesupport/lib/active_support/dependencies.rb:156:in `require'
/home/manuel/scrum/teamtrick/config/../vendor/rails/railties/lib/initializer.rb:210:in `check_ruby_version'
/home/manuel/scrum/teamtrick/config/../vendor/rails/railties/lib/initializer.rb:129:in `process'
/home/manuel/scrum/teamtrick/config/../vendor/rails/railties/lib/initializer.rb:113:in `send'
/home/manuel/scrum/teamtrick/config/../vendor/rails/railties/lib/initializer.rb:113:in `run'
/home/manuel/scrum/teamtrick/config/environment.rb:13
/usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
/home/manuel/scrum/teamtrick/vendor/rails/activesupport/lib/active_support/dependencies.rb:156:in `require'
/home/manuel/scrum/teamtrick/vendor/rails/activesupport/lib/active_support/dependencies.rb:521:in `new_constants_in'
/home/manuel/scrum/teamtrick/vendor/rails/activesupport/lib/active_support/dependencies.rb:156:in `require'
/home/manuel/scrum/teamtrick/vendor/rails/railties/lib/tasks/misc.rake:4

Mac OSX support

Guess what is needed to get TeamTrick bundle to run on a Mac.

SQLite gem is the weak point

task access

Only an administrator can create, edit or delete a task.
The code suggests otherwise (task_controller.rb):

def show_authorized?
  current_user_is_admin_or?(:product_owner, :scrum_master, :team_member)
end

def create_authorized?
  current_user_is_admin_or?(:product_owner, :scrum_master, :team_member)
end

def update_authorized?
  current_user_is_admin_or?(:product_owner, :scrum_master, :team_member)
end

def delete_authorized?
  current_user_is_admin_or?(:product_owner, :scrum_master, :team_member)
end

It also suggests everybody has access, so deleting this block solved my problem.
But the question remains why that block of code doesn't work, it seems to work in the other controllers.

Email notifications

Add the posibility of mail sending, when an account is created, for instance.

Improve PFC data

Make PFC sample pending sprint to begin today instead of finishing today.

Bug when an user is editing a history

Un usuario quiere editar una tarea de una historia y al pinchar sobre ella sale la cabecera de la aplicación montada sobre la lista de tareas con el mensaje "Action not allowed."

Processing MessageController#index (for 127.0.0.1 at 2010-01-14 17:16:46)
[GET]
  Parameters: {"action"=>"index", "controller"=>"message"}
Rendering template within layouts/application
Rendering message/index
Completed in 16ms (View: 16, DB: 0) | 200 OK [http://localhost/message]
D:/Software/teamtrick/lib/find_by_associated_extension.rb:13: warning:
Object#id will be deprecated; use Object#object_id
D:/Software/teamtrick/lib/find_by_associated_extension.rb:13: warning:
Object#id will be deprecated; use Object#object_id
D:/Software/teamtrick/lib/find_by_associated_extension.rb:13: warning:
Object#id will be deprecated; use Object#object_id
D:/Software/teamtrick/lib/find_by_associated_extension.rb:13: warning:
Object#id will be deprecated; use Object#object_id
D:/Software/teamtrick/lib/find_by_associated_extension.rb:13: warning:
Object#id will be deprecated; use Object#object_id
D:/Software/teamtrick/lib/find_by_associated_extension.rb:13: warning:
Object#id will be deprecated; use Object#object_id
D:/Software/teamtrick/lib/find_by_associated_extension.rb:13: warning:
Object#id will be deprecated; use Object#object_id
D:/Software/teamtrick/lib/find_by_associated_extension.rb:13: warning:
Object#id will be deprecated; use Object#object_id
D:/Software/teamtrick/lib/find_by_associated_extension.rb:13: warning:
Object#id will be deprecated; use Object#object_id
D:/Software/teamtrick/lib/find_by_associated_extension.rb:13: warning:
Object#id will be deprecated; use Object#object_id
D:/Software/teamtrick/lib/find_by_associated_extension.rb:13: warning:
Object#id will be deprecated; use Object#object_id
D:/Software/teamtrick/lib/find_by_associated_extension.rb:13: warning:
Object#id will be deprecated; use Object#object_id
D:/Software/teamtrick/lib/find_by_associated_extension.rb:13: warning:
Object#id will be deprecated; use Object#object_id
ssage]


Processing PlanningsController#row (for 127.0.0.1 at 2010-01-14 17:19:05)
[GET]
  Parameters: {"eid"=>"e3acaa77216566a2e8383e1a5c7fa4ac",
"project_id"=>"2", "mode"=>"current", "action"=>"row", "_metho
d"=>"get", "id"=>"79", "controller"=>"plannings"}
Completed in 32ms (View: 16, DB: 16) | 200 OK
[http://localhost/plannings/row/79?_method=get&eid=e3acaa77216566a2e8383e1
a5c7fa4ac&mode=current&project_id=2]


Processing PlanningsController#show (for 127.0.0.1 at 2010-01-14 17:19:08)
[GET]
  Parameters: {"eid"=>"e3acaa77216566a2e8383e1a5c7fa4ac",
"project_id"=>"2", "mode"=>"current", "action"=>"show", "_meth
od"=>"get", "adapter"=>"_list_inline_adapter", "id"=>"79",
"controller"=>"plannings"}
Start rendering component ({:controller=>"tasks",
:params=>{:mode=>"current", :eid=>"287a781970e11b5c1d178fbcb7a5e309"},
 :action=>"table"}):


Processing TasksController#table (for 127.0.0.1 at 2010-01-14 17:19:08)
[GET]
  Parameters: {"eid"=>"287a781970e11b5c1d178fbcb7a5e309",
"mode"=>"current", "action"=>"table", "id"=>nil, "controller"=
>"tasks"}
Rendering list
Completed in 297ms (View: 265, DB: 16) | 200 OK
[http://localhost/plannings/show/79?_method=get&eid=e3acaa77216566a2e838
3e1a5c7fa4ac&mode=current&project_id=2&adapter=_list_inline_adapter]


End of component rendering
Completed in 391ms (View: 16, DB: 0) | 200 OK
[http://localhost/plannings/show/79?_method=get&eid=e3acaa77216566a2e8383e
1a5c7fa4ac&mode=current&project_id=2&adapter=_list_inline_adapter]
D:/Software/teamtrick/lib/find_by_associated_extension.rb:13: warning:
Object#id will be deprecated; use Object#object_id
ist_inline_adapter]


Processing TasksController#show (for 127.0.0.1 at 2010-01-14 17:19:11)
[GET]
  Parameters: {"eid"=>"287a781970e11b5c1d178fbcb7a5e309",
"mode"=>"current", "action"=>"show", "_method"=>"get", "adapte
r"=>"_list_inline_adapter", "id"=>"453", "controller"=>"tasks"}
Redirected to http://localhost:3000/message

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.