pm architecture
DESCRIPTION
Andy Keller and Dave Shepperton, Traction Software. Traction User Group, Oct 14 2010, Newport RI. TUG 2010 Newport slides, agenda and more see www.TractionSoftware.comTRANSCRIPT
PM Architecture
Andy KellerDirector of Engineering
Dave SheppertonSenior Software Engineer
Two main parts
• Data model
• Implementation
22
Data Model: 3 entry types
• Projects
• Milestones
• Tasks
3
Data Model: Spaces vs. Projects
• In Traction 4.x, we referred to Spaces as Projects
• The term Project is now used for a set of Tasks
and Milestones
• In the SDK and SDL:
• Project is still used for Space
• Goal is used for Project – to avoid confusion ;-)
4
Data model: Projects
• Normal Entry
• Title, Body, Author, Tags, Attachments, Comments, etc.
• Additional Metadata
• Due Date
• Owners
• Members
• Status
• Associated Entries
• Has Milestones
• Has Tasks
5
Data model: Milestones
• Normal Entry
• Title, Body, Author, Tags, Attachments, Comments, etc.
• Additional Metadata
• Due Date
• Status
• Associated Entries
• Has Tasks
• May belong to a Project
6
Data model: Tasks
• Normal Entry• Title, Body, Author, Tags, Attachments, Comments, etc.
• Additional Metadata• Due Date, Start Date
• Status, Priority
• Assignees
• Estimate, Duration
• Associated Entries• May belong to a Project
• May be associated with a Milestone, which provides a default Due
Date
7
8
Entry Labels: used for PM
TaskTask
ProjecProjectt
MilestMilestoneone
Milestoneshave
Project
Tasks haveProject andMilestone
Data model: Task associations
• Task
• Task associated with a Milestone
• Task in a Project
• Task in a Project and Milestone
9
Implementation
• Indexes task metadata in a database
• Uses new features of the Traction SDK
• Custom entry types
• Entry decorators
• Entry labels
• XML Forms
11
JavaDB for the index
• Content is stored in Traction as Entries
• Title and description
• Labels
• Entry properties
• Indexed in the DB
• Simple SQL queries
• Sorting, totals, etc.
12
Pipeline
• Custom forms
• Content stored in the journal
• Event listener indexes metadata in database
• db.query tag to query the database
• db.entries tag turns query results into entries
13
XML Forms
• Covered this morning in customizing profiles
• 5 forms
• taskinline, taskitem, taskdialog
• milestone
• goal
14
XML Forms: triggering
15
• renders a form inline in the page
• creates a button to add or edit a form in a dialog
• fqid= attribute will trigger an edit
XML Forms: HTML rendering
• taskinline and taskdialog use HTML rendering
• offers more customization of layout, but still using XML controls
16
XML Forms: HTML rendering
17
<gwt.rpc.form>
<gwt.rpc.field>
Turns an HTML block into a form, replacing fields.
Replaced with a control from the schema.