Project Milestone Management
Overview
The main purpose of this feature is to be able to organize a project and mark important Milestone. Project Milestone could be attached to almost any xTuple transaction or action like ToDo's.
Functional Requirements
Organize the project and mark important milestone.
- Create Project Milestone
-
Attach xTuple transactions (SO Line, WO, WO Operation, ...)
- Track Transaction status
- Track misleading Due Date
Project Milestone DOES NOT involve Project Costing at this time.
New Terms and Definitions
If you refer to the wiki definition of a Project Milestone
Within the framework of project management, a milestone is the end of a stage that marks the completion of a work package or phase, typically marked by a high level event such as completion, endorsement or signing of a deliverable, document or a high level review meeting.
In addition to signaling the completion of a key deliverable, a milestone may also signify an important decision or the derivation of a critical piece of information, which outlines or affects the future of a project. In this sense, a milestone not only signifies distance traveled (key stages in a project) but also indicates direction of travel since key decisions made at milestones may alter the route through the project plan.
Related Existing Functionality
Project Milestone is not present in xTuple now.
Similar and Related Requests
Project can be refered in some xTuple transaction and the purpose is Project Costing at this time.
We also looked at the Documents object that could accomplish a lot, but its main purpose is to manage Documents.
Conflicting Features
N/A
User-Level Functionality
Describe how the new functionality will appear to and behave for the application user. To write this properly you will need to jump back and forth between this section and the Internal Design section.
Describe the menu changes and overall application structure changes here then get detailed in the subsections.
Window Changes
Project screen:
-
Add Milestone TAB
- New, Edit, View, Delete to manage project milestone
- Attach, Detach to manage linked transactions to milestone

Milestone screen:

Describe what each window does, what its fields mean, what the buttons do, what right-click menu items are available in the list views, etc.
Report Changes
What reports do we expect to create, eliminate, or change?
Batch Manager Changes
What functionality do we expect to add to, remove from, or change in the Batch Manager?
Usability Considerations
How do we think this will affect user access to existing functionality?
What problems do we anticipate users might have with this functionality and how can we minimize the impact of these problems?
What errors or abnormal situations do we expect users might encounter during normal processing and how can we make it easy for the user to fix these problems using the application?
Problems and Alternatives
What might go wrong with the solution described in this document?
Why might this not be the best solution?
What are the limitations of this approach? What's missing that might be desirable?
Describe briefly other ways to solve the basic problem and the advantages and disadvantages of each alternative.
Justify the chosen solution or argue why one of the alternatives would be better. Be as broad as possible here, since an important purpose of this section is to provide alternatives in case the initial attempt at implementation encounters a significant implementation block.
Internal Design
Now that we have defined what we have to do and how we think it should look to the user, we can describe the internal structure of the application. If possible, outline the architecture of the feature implementation here. Then in the sections below describe the changes and additions to the application to create this architecture.
Basic Algorithms
Are there particular algorithms required to implement this feature? If so, describe them here.
If you are going to outline a particular algorithm in pseudo-code
put it in a programlisting
try to limit lines to approximately 80 characters
try to limit programming constructs while still being clear about intent
end if // a programming construct that may be unavoidable to maintain clarity
Custom Widget Changes
Do we expect to modify existing custom widgets to support the windows described above?
What new custom widgets will we need? Will they be derived from existing widgets? What behavior do we expect from them?
Schema Changes
What changes do we anticipate making to the database schema? New tables? Views? Indexes?
The new whatever-you-call-it table
|
Column Name |
Description |
Data Type |
Comments |
|
field1 |
Describe me |
data_type |
how it's used |
|
foreign_key |
Describe me |
integer |
foreign key to other_id |
|
enum_field |
Status or similar field |
character(1) |
Can take one of the following: |
What privileges do we need?
|
Privileges for feature |
|
|
Name |
Description |
|
MaintainWhatever-you-call-it |
Can Add/Edit/Delete stuff |
|
ViewWhatever-you-call-it |
Can View stuff |
Stored Procedure Changes
What stored procedures do we expect to create, eliminate, or change?
Performance Considerations
How will this feature impact the performance of the application overall?
Error Handling
What internal errors do we anticipate might occur?
How can we best hide them from the user, prevent them, or fix them automatically?
QA Considerations
Does this feature require any special tools or data to test? Is it testable (some features may be hard to reach from the user level)?
What are some anticipated areas of concern that require special attention?
Documentation Considerations
Is there a significant documentation impact?
Does the feature require a standalone essay or only field-level descriptions?
Release Considerations
What release would we like to target?
What is the potential impact on a release if we don't finish in time?
What happens if we only get some of the functionality done?
Are there any pieces that would be useful on their own?
Are there any dependencies on other features or applications (such as Qt 4 or a particular release of OpenRPT)?
What is the anticipated impact on users, particularly those who have customized the sources, reports, and database schema?
I see you're making headway on this. Looking good!
