<html> <!--AD_DND--> <head> <title>Project Tracker</title> </head> <body bgcolor=#ffffff text=#000000> <h2>Project Tracker</h2> part of the <a href="index.html">ArsDigita Community System</a> by <a href="http://teadams.com">Tracy Adams</a> <hr> <ul> <li>User directory: <a href="/project-tracker">/project-tracker</a> <li>Admin directory: /admin/project-tracker <a href="/admin/project-tracker/">/admin/project-tracker</a> <li>data model: <a href="/doc/sql/display-sql.tcl?url=/doc/sql/project-tracker.sql">/doc/sql/project-tracker.sql</a> <li>procedures: /tcl/project-tracker.tcl </ul> <h3>The Big Picture</h3> Corporations need a way of organizing their people, projects, and time. <h3>The Medium Size Picture</h3> Vital company knowledge lies in answers to the following questions. <ul> <li> Where is Betty Stripe today? <li> What are our upcoming deadlines? <li> What is John Smith working on? <li> Which people are on the CNN project? <li> How much time did that project take? <li> What current issues and problems we are facing? <li> What has this project involved so far? </ul> <h3>Core Components</h3> The Project Tracker runs as part of the dedicated ArsDigita Community System for your intranet. Components of the Project Tracker are employees, customers, and projects. <h4>Employees</h4> Employees or key members of the company are users of the ArsDigita Community System. Detailed contact information is stored for users to provide a company directory. <p> A "current information note" is used as a quick reference for employees' temporary contact information and other special items. Users are reminded to maintain their current information note in their workspace. <p> Email notifications remind users to keep their contact and current information note up to date. <h4>Projects</h4> <p> Typical projects are <ul> <li> A client (iMedix) <li> A module (Project Tracker Module) <li> An initiative (convert company structure from LLC to SCorp) </ul> The <code>project_tracker_projects</code> table stores the main project information. <blockquote> <pre> create sequence project_tracker_projects_id_seq; create table project_tracker_projects ( project_id integer not null primary key, creator_user_id integer references users, creation_date date, name varchar(200), --- the url of the staff server for this service, if applicable glassroom_url varchar(100), start_date date, end_date date, -- if this project is for a customer, which one customer_id integer references project_tracker_customers, --- purpose is sales, operations, customer purpose varchar(100), --- major considerations for this project notes varchar(4000), ); </pre> </blockquote> Employees of the company are assigned to projects. <blockquote> <pre> create table project_tracker_assignments ( user_id integer references users, project_id integer references project_tracker_projects, creator_user_id integer references users, creation_date date, -- what the user does for this project role varchar(4000), unique(project_id, user_id) ); </pre> </blockquote> Each project has major deadlines. Example deadlines are "initial launch", "site upgrade", or "progress checkpoint". <blockquote> <pre> create sequence project_tracker_deadline_id_seq; create table project_tracker_deadlines ( deadline_id integer primary key, creator_user_id integer references users, creation_date date, name varchar(200), start_date date, due_date date, description varchar(4000), status_note varchar(4000) ); </pre> </blockquote> User's record time spent on each project or deadline. <blockquote> <pre> create table project_tracker_hours ( user_id integer not null references users, project_id integer not null references project_tracker_hours, deadline_id integer reference project_tracker_deadlines, notes varchar(4000), -- start_time and finish_time include date and time -- If total_hours is blank, we will assume that the -- user precisely enter the times and will calculate total_hours -- If total_hours is not blank, we will assume that start_time -- and end_time represent "general timeframes" and not try -- to recalculate total_hours start_time date, finish_time date, total_hours number(5,2), -- billing rate is in dollars billing_rate number(5,2) ); </pre> </blockquote> <h4>Customers</h4> We store potential, current, and past customers. <blockquote> <pre> create sequence project_tracker_customer_id_seq; create table project_tracker_customers ( customer_id integer primary key, creator_user_id integer references users, creation_date date name varchar(200), -- we are not going to bother storing a ton -- of structure information -- To store individual contact records, use the contact-manager contact_info varchar(4000), -- potential, current, past status varchar(100), notes varchar(4000) ); </pre> </blockquote> <hr> <a href="http://teadams.com"><address>teadams@mit.edu</address></a> </body> </html>