EditProjectStory

Functional specification

This story describes the creation or edition of a projec.t Administrators and project managers can edit project properties of a project. The project can either be a new project, or a previously selected one. Every project has a name, a manager and a status, describing whether the project is active or not. There is a user listing interface, that can be used to add users to the project, to remove users from the project, or to navigate to the EditUserStory. Also, there is a task listing interface, that can be used to create new tasks, to remove tasks from the project, or to change the status of tasks

An exhaustive list of properties, their data types and other details:

property data type input type # access linked to:
name text string (constraints?) edit 1 A M --
manager ops enabled user choose (0,1) A users
status active or closed choose 1 A M --
members ops enabled user choose (0,n) A M users
tasks task choose (0,n) A M tasks
start date date read only 1 -- * status
end date date read only 1 -- * status

A = Admin, M = Project Manager

* Start and end date are properties of the project, but they are automatically generated. Start date equals the creation date of the project, and end date is set when the project's status is set to closed. Neither start nor end date can be modified directly, but the values are displayed to provide additional information when editing the other values.

In this version it will not be allowed to remove members from a project. They can only be added.

Result: Changes made by the user are written to the persistence layer.

Technical specification

What is the current procedure for this use case?

Project creation requires adding an LDAP entry for a project and its attributes. This is currently done in two parts:
  • with JXPlorer + corresponding plugin (to create a new imap folder where the public mails for this projects will go (mailFolder attribute of the project), and to create a new ACL for this imap folder)
  • Through https://ldap.func.nl (to add all project, task, calendar, timesheet data) .
For editing a project only the second part need be done.

Estimates

task estimated spent
front-end: wicket components in place 80 80
front-end: adding navigation panel 1  
front-end: palette sorting 1 4
reading up on ldap 10 4+
(new project) Checking uniqueness name 8 2
new project) getting UID 2 1
adjusting start/end date 4 3
member and manager write + logic 5 1
imap: imap folder 10 4+
imap: getting access 4
imap: create folder 4
imap: set rights 2
testing 10
see what is wrong with listing tasks 2
tasks see EditTaskStory
getting OPSenabled users 3 ask Rommert

Total 0 0

ad screen, js input checking: Just as a reference, we started with wicket on 15 march.

Ad IMAP

Packages used by OPS plugin for jxplorer:

ACL

What it should do

  • When a user is added to a project, an ACL has to be added to that projects IMAP folder
  • When a new project is created, an IMAP folder has to be created, and all members have to be added to the ACL in that folder
  • When a projects name is changed, the name of the IMAP folder has to be changed accordingly
  • When a user is removed from a project, the ACL has to be removed from that projects IMAP folder? TO BE IMPLEMENTED LATER
  • When a project is removed, the IMAP folder has to be removed? TO BE IMPLEMENTED LATER

ad File Structure

Remember remember the 5th of november! We completely forgot that there's also some file structuring to be done!

Discussion

  • Should it be possible to create a new project but to NOT assign a manager?
  • Should the delete project option be available in the main menu, or only from the editProject menu?
  • Should there be some kind of confirmation? Either a separate confirmation screen or a view that shows the changes made.

(05:18:19 PM) Flavia: from the point of view of the structure of this database, a project can exist without a manager:
objectclass ( 1.3.6.1.4.1.20437.1.2.1 NAME 'project'
DESC 'ops project'
SUP top
MUST ( projectGuid $ name )
MAY ( startDate $ endDate $ task $ memberUid $ projectStatus $ projectManager $ mailFolder $ opsDocumentPath ) )

Wish-List

Here are some ideas i had while implementing the stories. They are not in the requirements and are about user-friendliness, so they're really just extra's.

Feedback
When a project has been written away it has to be clear what is exactely in ldap. More accurately, when changes are made to a project after it was written away it has to be clear that the project on screen now was has not been saved!

Selecting project members
Project members are always a subset of ops-enabled users. In a large company some kind of ordering of the user-list is desirable. Alphabetizing by name and or surname Grouping of users

The idea is to alphabetize in a way the user expects, that is "de Vries" comes after "Janssen". These would necessarily have to be views, because changes in the ldap structure are too costly.

Adding tasks
Some tasks are common to all projects. It is easier - leaves no room for typo's - if these can be added by selecting them from a list. Implementing this with some flexibility would result in an extra admin layer. The recurring tasks need to be stored somewhere the user can access (like a text-file). If we're going to add localization then the language resource files would be the place.

screen
Project name, IMAP folder and resource location will probably be the same (or at least the last part of path for resources will be the same as project name). It would be pretty if some client side scripting took care of this.

-- IvanaCace - 02 Apr 2007

Resources

-- RommertDeBruijn - 06 Mar 2007

Topic revision: r17 - 04 Apr 2007 - 18:19:18 - FlaviaPaganelli

tip TWiki Tip of the Day
Creating a Table of Contents
The TWikiVariables % nop TOC% will automatically create a table of contents for a topic based on the ... Read on Read more

 
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback