0% found this document useful (0 votes)
39 views

Web-Based Project Management System: February 2009

This document describes a web-based project management system called Atma Groupware. The system was created to help improve communication, knowledge sharing, and project tracking for development teams working together. It uses the Ruby on Rails framework. Key features include virtual whiteboards, chat functionality, event scheduling, and issue/task tracking to help teams collaborate remotely. Project metrics are also collected to aid management. The goal was to evaluate Ruby on Rails for building such a collaborative system.

Uploaded by

napim :D
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
39 views

Web-Based Project Management System: February 2009

This document describes a web-based project management system called Atma Groupware. The system was created to help improve communication, knowledge sharing, and project tracking for development teams working together. It uses the Ruby on Rails framework. Key features include virtual whiteboards, chat functionality, event scheduling, and issue/task tracking to help teams collaborate remotely. Project metrics are also collected to aid management. The goal was to evaluate Ruby on Rails for building such a collaborative system.

Uploaded by

napim :D
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/261858984

Web-based Project Management System

Conference Paper · February 2009

CITATIONS READS

4 10,050

3 authors:

Wojciech Zabierowski Grzegorz Galezowski


Lodz University of Technology IPN
130 PUBLICATIONS   210 CITATIONS    1 PUBLICATION   4 CITATIONS   

SEE PROFILE SEE PROFILE

A. Napieralski
Lodz University of Technology
723 PUBLICATIONS   4,321 CITATIONS   

SEE PROFILE

Some of the authors of this publication are also working on these related projects:

Nano modelisation View project

Modelling of nonlinear thermal phenomena in electronic systems View project

All content following this page was uploaded by Wojciech Zabierowski on 04 June 2014.

The user has requested enhancement of the downloaded file.


1

Web-based Project Management System


Grzegorz Gałęzowski, Wojciech Zabierowski, Andrzej Napieralski
Abstract - This paper describes current problems presentation software included in office suites to revision
with project management as well as a web application control systems. Everything depends on what a team really
created by authors, aimed to ease project management. needs. Also, many of these tools are often used
Keywords - Web, Ruby, Rails, AJAX, Software simultaneously, so integrating them in bigger and more
engineering, Project management. feature-full systems is another convenient option.
I. INTRODUCTION III. PROJECT NAME AND GOALS
Over time, problems meant to be solved by software The project codename is Atma Groupware and its goal is to
engineering have grown more and more complex. Today,
create a groupware system available entirely through web
development model where designer, implementer and
browser as a set of dynamic web pages. Web browser
maintainer of enterprise class software is one and the same applications have advantage in this kind of systems, because
person throughout application's life cycle is mostly client's operating system, hardware configuration, physical
unthinkable. Teamwork is crucial where time, money and
location etc. is usually not an issue in such case.
quality count. There are two common issues with groups. One
is communication within the group, and the other Atma Groupware was designed with improvements in areas of
is accumulation of knowledge and experience – in case communication, management, knowledge availability and
a valuable participant leaves or a new project is started that progress tracking in mind.
can build on experience gained with other existing projects. Another goal was to evaluate Ruby programming language
These issues are addressed by a category of software designed and Ruby on Rails web application framework as a tool for
for the sole purpose of aiding teamwork. This category is creating such solutions.
often referred to as “groupware”. The groupware topic has
gained much attention over last years, primarily thanks to the IV. COMMUNICATION - RELATED FEATURES
rapid growth of internet in maturity and popularity. There are There are many ways for a team to communicate. We have
already many applications – proprietary and open-source – decided to support the following forms of communication:
made to support development teams, but diversity of needs
and teamwork models still leaves enough room for new ideas Virtual whiteboard, one for each project, where participants
and approaches. can exchange data “globally” when they have something less
formal to share with the rest of the team, e.g. Fred thinks that
II. GROUPWARE IN GENERAL computers his team is using are too slow and puts a note on
Almost anyone who uses computer has something to do the whiteboard in hope someone thinks the same and it turns
with groupware. Groupware is strongly diversified. The into more formal process of exchanging their computers into
diversity is obtained in two dimensions – time and place. new models.
Applications used when working in the same time are called
“synchronous groupware”, in opposition to “asynchronous Conferences, or - more colloquially – chats, that let
groupware” used by people working in different time periods. participants talk with each other. This form of communication
Tools used when working in the same place are called can be useful when, for example, there is an important
“collocated groupware” or “face-to-face groupware”, in conference to be held and important promises are going to be
opposition to “non-collocated groupware” or “distance made by project management sitting in Las Vegas while
groupware” used when working at different places. The engineers are in Warsaw.
matrix presented on Fig. 1 gives a few examples of Event arrangements – sometimes people just need to meet
application types from each dimension (based on [1]): and talk face-to-face. Event arrangements make it easier in
two ways. One is creating events and sending invitations to
anyone whose presence is desired. Invited participant may
accept the invitation, ask event creator to postpone the event
or refuse the invitation. The second way this feature helps is
by letting participants check when others are available, e.g.
Fred wants to ask Barney a simple question, but the system
shows that Barney is at the meeting right now. Fred doesn't
have to stand up and go to the second floor to know that
Barney is not going to be there.
Issues – this is a more formal way communicating thing in
project. Raising an issue is a way to say “this is a case we
Fig.1 Example groupware application types (based on [1]).
have to handle somehow”, e.g. Fred has discovered that
As it appears on the Fig. 1, many kinds of software can be regression tests started to fail after last five code changes. He
called “groupware” – from instant messengers through

CADSM’2009, 24-28 February, 2009, Polyana-Svalyava (Zakarpattya), UKRAINE


2

starts an issue to communicate and document that there is a an answer to the question “who's the boss?” (and agreeably
problem and to find someone to solve it. say that the answer is “Chuck Norris”), we can do that in at
most three lines of code.
V. MANAGEMENT AND KNOWLEDGE – RELATED
FEATURES Method overriding is possible even in the same class that
contains original method definition. Class body is an
Every project manager needs to know what is going on in executable code (not a set of declarations), so if a method is
their project and calculate some metrics to help them make defined that has the same name as other method, it simply
decisions. Atma Groupware supports a minimal set of project overrides the previous definition. This feature allows many
management metrics, including mean time of resolving issues useful idioms, such as customization of core classes
or mean value of issues per project milestone. functionality (e.g. if one wants to record every created number
Atma Groupware is designed to hold data on multiple in a database table, it's easily achievable), or redefining
projects, so knowledge gained during one project can be method by itself (we can make our blow_yourself_up! method
reused in another. Engineers that have problems may look at do it's work and instantly morph itself into a new method by
past projects in order to check if there weren't similar the same name that throws ICantDoThatAgain exception
problems in any of them, see how they were handled and every time it is called).
eventually come up with their own solution. Another example Metaprogramming is most often referred to as a technique
is an archive of conferences available for browsing in case to “write code that writes code”. This feature is more or less
someone wants to check whether any arrangements were supported by most dynamic languages, but Ruby is
made during particular conference. outstanding in this field. Nearly everything can be
VI. PROGRESS TRACKING – RELATED FEATURES parameterized, generated, and added to a class or method at
runtime.
There are several mechanisms that allow progress tracking
in Atma Groupware: VIII. THE USE OF RUBY ON RAILS WEB
APPLICATION FRAMEWORK
Milestones, sometimes called “gates”, are breakthrough
moments of project development. They are set before Atma Groupware is written using Ruby on Rails
development begins and their completion status is most basic framework. Ruby on Rails was precursor of the light web
information that lets management orient whether the project is framework concept. These kind of frameworks are most often
going according to schedule or not. written in dynamic languages, support MVC
(Model - View - Controller, [3]) or MTV
Issue tracking is a classic way of dealing with problems in
(Model - Template - View, [4]) strategy, and emphasize such
software projects using groupware. A participant can submit
principles as DRY (Don't Repeat Yourself, [5] and [6]) and
an issue (for example that there is a bug in the code or a
COC (Conventions Over Configuration, [7]). Today this
requirement is out of date), and then someone is assigned to
concept has its representatives in almost all popular dynamic
deal with the issue. Other participants may also help by
languages, including perl (Catalyst, [8]), python (Django, [9]),
inputting their comments. The participant assigned to issue
PHP (CakePHP, [10], or PHP on Trax, [11]) and Groovy
sets its status according to his progress in resolving it, and,
(Grails [12]).
when finished, closes the issue. For managers, knowledge on
how many issues are still open, how many have been fixed As we stated earlier in this text, Rails is a web application
and how long it usually takes to resolve an issue is helpful for framework based on the MVC strategy. In Java terminology, a
planning releases and schedules. web implementation of MVC is called Model 2 (as opposed to
Model 1, which does not use MVC), defined in [13]. The way
Activities are a little different than issues. For example
MVC works in Rails is presented on Fig 2.
there are applications that take few hours to build and more
hours to test. This kind of actions is out of scope of issue The MVC pattern requires three tiers present in the
tracking, but they take time in project schedule and omitting application's architecture: model tier, view tier and controller
them may create a false image of project's progress. tier.
VII. THE USE OF RUBY PROGRAMMING LANGUAGE Model in Rails is handled by dedicated ORM (Object -
Relational Mapping, [15]) sub-framework, named
Atma Groupware has been written in Ruby language, using ActiveRecord. ActiveRecord is an implementation of Martin
Ruby on Rails framework. Fowler's Active Record design pattern [16]. In Active Record
Ruby is a dynamic, object-oriented programming language pattern, a class is mapped to a database table (with such
with features borrowed for such languages as Smalltalk, C++, features as finding or updating rows in the table) and an object
perl, python or Lisp. Few of these features are relevant to this is mapped to a table row.
article.
Class definition reopening allows reopening any class
definition (even one of the core library classes) and defining a
new method that will be propagated down in the class
hierarchy. So if we want to make sure that every object knows

CADSM’2009, 24-28 February, 2009, Polyana-Svalyava (Zakarpattya), UKRAINE


3

methods, because privileges may vary between different


instances of the same resource.
When new participant is created in the system, a new group
is created with the same name as the participant's login. This
group is called participant's “personal group” and is used for
personal sections of web pages, e.g. personal notes. In other
words, sections intended only for a certain participants to see
are visible only to their personal group members.
Administrator is by default a member of all existing and
newly created groups.
Authorization understood as such is a matter of domain, a
Fig.2 Control flow between model, view and controller in Rails. matter of policy and a matter of presentation at the same time,
Taken from [14].
so it had to be implemented in all three tiers: model, view and
View output format is usually HTML, but can be anything, controller.
including XML, JSON, JavaScript code, PDF or CSV. The
Thanks to Ruby's class reopening feature, all model objects
views in Rails are by default handled by a template engine
are authorized by default and all controller objects check for
named ERB (Embedded RuBy). It is used to interpret Ruby
authorization without having to write extra code in their
code embedded in text files and works similar to JSP pages
classes. The only case when code has to be written is when a
known from Java Enterprise Edition. Apart from ERB, other
resource is not suitable for authorization (e.g. database session
template engines are available, e.g. Haml [17], widely used in
store). Even then putting excluded_from_authorization line in
Atma Groupware.
class body is all that has to be done to achieve the desired
Controllers are objects that tie views and model together. effect.
Controllers in Rails are REST-enabled (REST is an acronym
2. SUBVERSION INTEGRATION
for Representational State Transfer, [18]) and multiple format
– aware (they can act differently depending on which format Revision control systems are very common in software
of resource view has been requested). engineering these days. Subversion (also called SVN, [21]) is
an example of centralized revision control system (CRCS),
IX. TECHNICAL FEATURES HIGHLIGHTS made with a goal to replace Concurrent Versions System
1. AUTHORIZATION (CVS) in mind. Subversion is released under the Apache
License [22], making it “free (libre) software”.
The idea of authorization used in Atma Groupware was
inspired by proprietary applications and solutions used in SVN repository is a file structure that is hard to understand
UNIX file systems, namely Access Control List (ACL) and browse with a regular file system browser. Thankfully,
(described in [19]). Every resource instance has a CRUD SVN is an open source product and its core functionality is
(Create-Read-Update-Destroy, [20]) privileges that can be embodied as a shared library with open API. Thanks to this,
granted to groups on an instance basis, e.g. someone may be multiple clients for this library can be built, using the API or
authorized to edit project CARE data, but not project bindings to the API made with such tools as SWIG
WISDOM. This can be seen on fig. 3 (which is only a concept (Simplified Wrapper and Interface Generator, [23]). Atma
schema, showing the idea instead of implementation – the Groupware uses SVN bindings for Ruby in order to provide
detailed schema would be much more complicated). basic repository browsing features by wrapping those bindings
in more domain-specific interface. The overall components
layout is shown on Fig. 4. It presents the solution broken into
layers that work within the control of Atma Groupware
application.
Using the functionality provided by wrapper library
(marked on Fig. 4. as SVNRepository.rb – the most upper
layer), Atma Groupware lets users navigate through branches
of repository, view code from different revisions and see what
changes have been made and when. This can greatly enhance
system's usefulness to engineers working directly with the
code.
3. GLOBALIZATION
Fig. 3. Authorization implementation concept schema. One of the core requirements for Atma Groupware was that
Note that creator_privilege is a static method (in Ruby these it should be easily translatable into other languages, like
are called “singleton methods”), because it does not apply to
any particular resource instance, but to resource itself. The
rest of the privilege authorization methods are instance

CADSM’2009, 24-28 February, 2009, Polyana-Svalyava (Zakarpattya), UKRAINE


4

http://www.djangoproject.com/, November 2008


http://www.cakephp.org/, November 2008
http://www.phpontrax.com/, November 2008
http://grails.org/, November 2008
http://en.wikipedia.org/wiki/Model_2, March 2008
Bruce A. Tate, Kurt Hibbs “Ruby on Rails: Up and running”,
O'Reilly Media, Inc., 2006
http://en.wikipedia.org/wiki/Object-relational_mapping, June
2008
http://martinfowler.com/eaaCatalog/activeRecord.html, June
2008
http://haml.hamptoncatlin.com/, March 2008
Fig.4. Overall architecture of Subversion component and its
http://en.wikipedia.org/wiki/Representational_State_Transfer,
Grzegorz Gałęzowski, Wojciech Zabierowski, Andrzej Napieralski – April 2008
Department of Microelectronics and Computer Science, Technical http://en.wikipedia.org/wiki/Access_control_list, January
University of Lodz, Poland. E-mail: secretary@dmcs.p.lodz.pl 2008
http://en.wikipedia.org/wiki/Create%2C_read
dependencies. %2C_update_and_delete, August 2008
Polish or French. This requirement was satisfied by using http://subversion.tigris.org/, November 2008
Globalize plug - in [24] for Rails framework. The use of this http://www.apache.org/licenses/LICENSE-2.0.txt, February
plugin has two advantages. One is that the original developers 2008
don't need to know or care which languages the application is http://www.swig.org, July 2008
going to be translated into. The second advantage is that http://www.globalize-rails.org/globalize/, January 2008
application does not need to be restarted or rebuilt when new
translations are added.
X. CONCLUSION
REFERENCES
Usability First: Groupware
As we have stated before, there are many
http://www.usabilityfirst.com/groupware/, August 2008 open-source and proprietary groupware systems.
http://en.wikipedia.org/wiki/Software_crisis, August 2008 Many of them have been in active development for
http://en.wikipedia.org/wiki/Model-view-controller, August years now and have reached a level of maturity
2008 very hard to catch up with by newly started
http://jeffcroft.com/blog/2007/jan/11/django-and-mtv/, August
2008
projects. But this was not the goal of Atma
http://en.wikipedia.org/wiki/Don't_repeat_yourself, August Groupware. Developing this application allowed us
2008 to inspect the way such systems work, experience
D.Thomas, A. Hunt “The Pragmatic Programmer: From problems that developers of groupware systems
Journeyman to Master”, Addison-Wesley, 1999 encounter on a daily basis and test few of our
http://en.wikipedia.org/wiki/Convention_over_Configuration,
August 2008
concepts for solving common problems.
http://catalyst.perl.org/, November 2008

CADSM’2009, 24-28 February, 2009, Polyana-Svalyava (Zakarpattya), UKRAINE

View publication stats

You might also like