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
We are currently working on:
- add billing tab to a project: list of non billed hours and to be able to create/ad to an invoice, list of billed hours with invoice id's.
- create security on screens and services according the document at: http://docs.ofbiz.org/display/OFBENDUSER/Project+Manager+Application+Roles
Work still needs to be done: (let me know if you would like to work on this)
- On the project summary show parent projects.
- add a billing tab to a client resource to show outstanding and invoiced hours
- split resources left/right into client/provider resources, add a new level in the RoleTypes for projectTeam:
PROJECT_TEAM -> provider -> provider roles
-> client -> client roles - add to the resources, a tab to specify the rates for a provider resource. (see partyRates in partyMgr)
- Reporting?
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
- Task (WE)
- Time Sheet
- Resource
- Time Entry
- Task (we)
- InvoiceItem
GENERAL REPORTS LIST
NOTE: these are the report definitions; the use of the reports can be seen in the process outlines.
Actual Reports (in HTML initially to keep it simple, make it all more interactive)
- Task Reports
- Task by priority (Iteration planning / The Planning Game)
- Task over time estimate or past schedule
- Tasks not assigned, drop-down/pop-up assign to Party X
- Tasks not scheduled (Product Backlog in SCRUM parlance)
- Tasks assigned to me
- Project summary (By Supervisor / By Client)
- Tasks by priority (including their status)
- All Tasks and Subtasks expanded (in order to see detail)
- 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?
- TODO - Add more here.
- Gantt for Project
- Tasks completed, times task was reopened, Avg. time taken to fix a task , Avg. number of tasks fixed per day
- WE estimate versus actual
- Estimated schedule/workload for party X (or me without permission) (based on hours worked per day, days per week, etc)
UI ELEMENTS LIST
General Screen Requirements
1. Per-project permission required with WE role limited permission, not required for general permission (WorkEffortRole?in certain roles, direct or to parent/ancestor) 2. Permission for task maintenance - allow certain status changes for own tasks, to complete/approve require manager role (both client and provider people will have variations of these, see processes for details)
New Interactive Screens
1. TODO
Email Notifications
- Tasks assigned to me (daily)
- Weekly (or daily) project summary (to client and provider managers; include burn rate summary, tasks done/in progress/etc)