Item9642: InterdependentVariableDatabase

pencil
Priority: Enhancement
Current State: No Action Required
Released In: 1.0.0
Target Release: n/a
Applies To: Extension
Component:
Branches:
Reported By: HenroRitchie
Waiting For:
Last Change By: DavidPatterson
Hi

I have an interesting problem, and a idea on a possible solution.

I have a busy working on a project tracking/management system. The structure are as follow:

  • A master project topic
  • Tasks for this specific project
  • Milestones for the project - a milestone will be the 'parent' for a couple of tasks

The first step is to define the project and the project attributes. For example the project would have the following attributes:

  • Project Name
  • Project Manager
  • Start Date

After the project attributes are defined tasks can be added to the project. The tasks reside in a lib. The lib keeps general information on a task, for example the description and the duration. The task can be added to a project and will inherit the attributes of the lib item. A task will also have additional attributes;

  • Task Name
  • Task Description
  • Task Duration
  • Task Start Date: The task start date will depend on the predecessor end date.
  • Task Predecessor: The task predecessor needs to be defined to determine the start date.

For example: Task 1 Startdate = Project Start Date Task 1 Enddate = Task 1 Startdate + Duration Task 2 Startdate = Task 1 Enddate

etc

One solution would be to define the project as a topic and define the project start date in a form attached to the project. The tasks can also be topics with the project topic as their parent. The start date of task 1 then needs to be the project start date. And task 2 will get its start date from task 1 as earlier explained. The problem is that when the project start date is changed I have to manually open task 1 to update the start date and then manually open task 2 to update etc. This is not a viable solution.

The second solution would be to keep all the variables and data in one topic. This would work if the project stays relatively small (<10 tasks). Then total fields will be less than a 100. But if the project expands to say 200 tasks then the form will have 1000+ fields, which will be to cumbersome and ineffective. The second problem is that the predecessor needs to be defined from the name of one of the earlier tasks, meaning that the formfield values must be able to update dynamically, which again creates another set of problems.

In my mind I would like the possibility to define a wiki database inside a wiki topic. For example one page, with a large table with a arbitrary number of columns and rows. Where the columns will be the fields and the rows the variables attached to that field. Something like a excel spreadsheet or a MySQL database where the interdependency are kept in the database and formfields will be identifiable by column and row identification.

At the moment my best solution in my humble opinion would be to use a MySQL database and only use foswiki as the front end to the database, but I would like to be able to keep everything inside foswiki.

Does a solution to this problem exists or are my solution the best option?

Would it be wise to develop a plugin/extension that can accommodate the needed functionality?

Any advise or ideas would be much appreciated!

-- HenroRitchie - 08 Sep 2010

Thank you HenroRitchie for your interesting question!

This task reads like a feature request + support request.

There is nothing really actionable on this task (i.e. no code that we can commit for it) and a proper feature proposal needs a really thorough specification to guide the coders.

SO I have continued your problem at Support.Question641.

-- PaulHarvey - 08 Sep 2010

Quite right, Paul, moved my comment over there.

-- DavidPatterson - 08 Sep 2010

 

ItemTemplate edit

Summary InterdependentVariableDatabase
ReportedBy HenroRitchie
Codebase 1.0.9
SVN Range
AppliesTo Extension
Component
Priority Enhancement
CurrentState No Action Required
WaitingFor
Checkins
TargetRelease n/a
ReleasedIn 1.0.0
Topic revision: r3 - 08 Sep 2010, DavidPatterson
The copyright of the content on this website is held by the contributing authors, except where stated elsewhere. See Copyright Statement. Creative Commons License    Legal Imprint    Privacy Policy