This Confluence has been LDAP enabled, if you are an ASF Committer, please use your LDAP Credentials to login. Any problems file an INFRA jira ticket please.

Child pages
  • Complete the implementation of the ProjectMgr component.

Access to add and change pages is restricted. See: https://cwiki.apache.org/confluence/display/OFBIZ/Wiki+access

Skip to end of metadata
Go to start of metadata

Project manager application

The project manager is currently under development. The open issues are listed in Jira. If somebody would like to help, please read the description below first. On the other hand if you have suggestions for this text please add a Jira issue to the ProjectMgr component or add a comment. It is modeled after the PMW (Project Manager Workbench and other project manager packages.

The main purpose of the project manager application is the administration of projects, phases, tasks and resources and tracking of estimated time against actual time which is entered via timesheets on project tasks only. This time registration is then used to generate invoices which can be send to the 'client' party of the project.

In order to use the system, make sure you have resources, create a project, phases and tasks, add the resources to the project level and enter the estimated start and completion dates or use the schedule function. From then on, tasks can assigned and time and status can be registered.

Status

The project component is now complete however reporting could be improved.

System principles.

  • A project consists out of one or more phases of which each phase can have one or more tasks.
  • A task always has a parentPhase.
  • Time registration is only done on a task level.
  • Estimated and actual dates are only maintained at the task level. For reporting they are calculated to the higher levels. Project views are created to support this.
  • The workAssoc entity is used to identify relationships in the order the tasks should be executed, a facility needs to be added to calculated the estimated start/end dates of every task according these relationships.
  • In the option 'myTime" time can only be reported on assigned tasks, tasks can only be assigned to projectmembers.
  • All timestamps in the timesheets have a time set to '00:00:00.0"
  • A timesheet is only for one week and one week only and can have many time entries, one for each task and one day within the fromDate and Thrudate of the timesheet. A timentry is always referring to a task(Workeffort)
  • A timesheet only has related time entries where the partyId is null meaning that these entries are from the partyId on the timesheet. The thrudate is not used on the TimeEntry, only the fromdate. The timeEntry only registers hours for the specific fromDate date only.
  • In a project the following (security) roles are recognized:
    Administrator: has full access over all projects
    Client Manager, Client Analyst: has full read access over the project. and can report time.
    Client Billing: who will receive the invoices.
    Provider Manager: has full access to the project he is member of.
    Provider Accounting: who can create invoices and send these to the Client Billing,or if not present to the Client manager.

System Setup.

The system is divided into 2 parts:

  • The 'my' options such as 'my tasks' and 'my time'.The logged user has the possibility to add and modify tasks assigned to him and link new tasks to projectphases of projects where he is a member of. A task can be standalone and not part of a project for personal use.
  • The more general options for the project manager to setup projects and phases and planning dates and assign resources to tasks.
  • The administrator functions to add resources and skill types

CURRENT DATA MODEL

  • Project (WE)
    • SubProject
    • Notes
    • ProjectTeamMember (party)
    • Phase (WE)
      • Task (WE)
        • Resource (partyId or fixedAsset(later))
        • Skill Standards (kind of skill and number of FTE's required)
        • Notes
        • time entry
        • Association with other tasks in which order they should be executed.
        • Customer Request
  • Time Sheet
    • Resource
    • Time Entry
      • Task (we)
      • InvoiceItem

GENERAL REPORTS LIST

Actual Reports (in HTML initially to keep it simple, make it all more interactive)

  1. Task Reports
    1. Task by priority (Iteration planning / The Planning Game)
    2. Task over time estimate or past schedule
    3. Tasks not assigned, drop-down/pop-up assign to Party X
    4. Tasks not scheduled (Product Backlog in SCRUM parlance)
    5. Tasks assigned to me
  2. Project summary (By Supervisor / By Client)
    1. Tasks by priority (including their status)
    2. All Tasks and Subtasks expanded (in order to see detail)
    3. Hours / Billing View - so they can see how much each person has worked during the period. Do we include what their pay rate is somewhere?
    4. TODO - Add more here.
  3. Gantt for Project
  4. Tasks completed, times task was reopened, Avg. time taken to fix a task , Avg. number of tasks fixed per day
  5. WE estimate versus actual
  6. Estimated schedule/workload for party X (or me without permission) (based on hours worked per day, days per week, etc)