Projecta

This collection describes a single deliverable of a larger project.

Schema

The following lists key names mapped to its type and meaning for each entry.

_id:

string, Unique projectum identifier, required

begin_date:

[‘string’, ‘date’], projectum start date, yyyy-mm-dd, optional

collaborators:

list, list of collaborators ids. These are non-group members. These will be dereferenced from the contacts collection., optional

deliverable:

dict, outline of the deliverable for this projectum, required

audience:

list, the target audience for this deliverable, optional

due_date:

[‘date’, ‘string’], due date of deliverable, yyyy-mm-dd, optional

success_def:

string, definition of a successful deliverable, optional

scope:

list, a list of items that define the scope of the deliverable.If this is a software release it might be a list of Use Cases that will be satisfied.If it is a paper it defines what will, and what won’t, be described in the paper., optional

platform:

string, description of how and where the audience will access the deliverable.e.g. Journal if it is a paper. For software releases, this may be the computer operating systems that will be supported, or if it will be a web service, etc., optional

roll_out:

list, steps that the audience will take to access and interact with the deliverable, not needed for paper submissions, optional

notes:

list, any notes about the deliverable that we want to keep track of, optional

status:

string, status of the deliverable. Allowed values are {’, ‘.join(PROJECTUM_STATI)}, optional

Allowed values:
  • proposed

  • converged

  • started

  • backburner

  • paused

  • cancelled

  • finished

  • all

type:

string, type of deliverable, optional

description:

string, explanation of projectum, optional

end_date:

[‘date’, ‘string’], projectum end date, yyyy-mm-dd., optional

grants:

[‘string’, ‘list’], grant id funding the project, optional

group_members:

list, list of group member id’s working on this project,These will be dereferenced from the people collection., optional

kickoff:

dict, details the projectum kickoff meeting, optional

date:

[‘date’, ‘string’], kickoff meeting date, yyyy-mm-dd., optional

due_date:

[‘date’, ‘string’], kickoff meeting by date, yyyy-mm-dd., optional

end_date:

[‘date’, ‘string’], date when the kickoff was done, optional

name:

string, name of meeting, optional

objective:

string, goal of the meeting, optional

audience:

list, list of people attending the meeting.Normally this list is group_members, collaborators, and pi, or some subset of these. if people are invited who are not alreadyin these groups their names or id’s can be added explicitly to the list, optional

notes:

list, any notes about the kickoff, optional

status:

string, status of the kickoff. Allowed values are {’, ‘.join(PROJECTUM_STATI)}, optional

Allowed values:
  • proposed

  • converged

  • started

  • backburner

  • paused

  • cancelled

  • finished

  • all

type:

string, type of kickoff deliverable. In general will be ‘meeting’Allowed values are {’, ‘.join(MILESTONE_TYPES)}, optional

Allowed values:
  • mergedpr

  • meeting

  • other

  • paper

  • release

  • email

  • handin

  • purchase

  • approval

  • presentation

  • report

  • submission

  • decision

  • demo

  • skel

lead:

string, the id of the lead student or person for the projectum. Person details will be dereferenced from the people collection., required

log_url:

string, link to an online document (e.g., Google doc) that is a log of notes and meeting minutes for the projectum, optional

milestones:

list, smaller deliverables done by a certain date a series of milestones ends with the projectum deliverable, optional

type:

dict, optional

uuid:

string, a universally unique id for the task so it can be referenced elsewhere, optional

due_date:

[‘date’, ‘string’], due date of milestone, yyyy-mm-dd, optional

name:

string, what is the deliverable of milestone, optional

notes:

list, any notes about the milestone and/or small, non-deliverable to-dos to reach the milestone, optional

tasks:

list, list of todo uuids to complete the milestone , optional

progress:

dict, update on the milestone, optional

text:

string, text description of progress and observations, optional

figure:

list, token that dereferences a figure or image in group local storage db, optional

slides_urls:

list, urls to slides describing the development, e.g., Google slides url, optional

objective:

string, explains goal of the milestone, optional

audience:

list, list of people attending the meeting.Normally this list is group_members, collaborators, and pi, or some subset of these. if people are invited who are not alreadyin these groups their names or id’s can be added explicitly to the list, optional

status:

string, status of the milestone. Allowed values are {’, ‘.join(PROJECTUM_STATI)}, optional

Allowed values:
  • proposed

  • converged

  • started

  • backburner

  • paused

  • cancelled

  • finished

  • all

type:

string, type of milestone deliverable. Allowed values are {’, ‘.join(MILESTONE_TYPES)}, optional

Allowed values:
  • mergedpr

  • meeting

  • other

  • paper

  • release

  • email

  • handin

  • purchase

  • approval

  • presentation

  • report

  • submission

  • decision

  • demo

  • skel

end_date:

[‘date’, ‘string’], end date of milestone, yyyy-mm-dd, optional

identifier:

string, label of milestone, optional

name:

string, name of the projectum, optional

notes:

list, notes about the projectum, optional

other_urls:

list, link to remote repository. e.g. analysis or data repositories, optional

pi_id:

string, id of the PI, optional

product_url:

string, url for manuscript or code repository, optional

status:

string, status of the projectum. Allowed values are {’, ‘.join(PROJECTUM_STATI)}, required

Allowed values:
  • proposed

  • converged

  • started

  • backburner

  • paused

  • cancelled

  • finished

  • all

supplementary_info_urls:

list, list of urls that are links to repos gdocs, etc. that contain supplementary info such as data or code snippets, optional

YAML Example

ab_inactive:
  begin_date: '2020-05-03'
  deliverable:
    due_date: '2021-05-03'
    status: paused
  description: a prum that has various inactive states in milestones and overall
  grants: dmref15
  kickoff:
    due_date: '2021-05-03'
    name: Kickoff
    status: backburner
    type: meeting
  lead: abeing
  milestones:
    - due_date: '2021-05-03'
      name: Milestone
      status: converged
      uuid: milestone_uuid_inactive
  status: backburner
pl_firstprojectum:
  begin_date: '2020-07-25'
  deliverable:
    due_date: '2021-08-26'
    status: finished
  end_date: '2020-07-27'
  kickoff:
    due_date: '2021-08-03'
    name: Kickoff
    status: backburner
  lead: pliu
  milestones:
    - due_date: '2021-08-03'
      name: Milestone
      status: converged
      uuid: milestone_uuid_pl1
  status: finished
pl_secondprojectum:
  begin_date: '2020-07-25'
  deliverable:
    due_date: '2021-08-26'
    status: finished
  kickoff:
    due_date: '2021-08-03'
    name: Kickoff
    status: backburner
  lead: pliu
  milestones:
    - due_date: '2021-08-03'
      name: Milestone
      status: converged
      uuid: milestone_uuid_pl2
  status: proposed
pl_thirdprojectum:
  begin_date: '2020-07-25'
  deliverable:
    due_date: '2021-08-26'
    status: finished
  kickoff:
    due_date: '2021-08-03'
    name: Kickoff
    status: backburner
  lead: pliu
  milestones:
    - due_date: '2021-08-03'
      name: Milestone
      status: converged
      uuid: milestone_uuid_pl3
  status: backburner
sb_firstprojectum:
  begin_date: '2020-04-28'
  collaborators:
    - aeinstein
    - pdirac
  deliverable:
    audience:
      - beginning grad in chemistry
    due_date: '2021-05-05'
    notes:
      - deliverable note
    platform: description of how and where the audience will access the deliverable.  Journal
      if it is a paper
    roll_out:
      - steps that the audience will take to access and interact with the deliverable
      - not needed for paper submissions
    scope:
      - UCs that are supported or some other scope description if it is software
      - sketch of science story if it is paper
    status: proposed
    success_def: audience is happy
  description: My first projectum
  grants: SymPy-1.1
  group_members:
    - ascopatz
  kickoff:
    audience:
      - lead
      - pi
      - group_members
    date: '2020-05-05'
    due_date: '2020-05-06'
    end_date: '2020-05-07'
    name: Kick off meeting
    notes:
      - kickoff note
    objective: introduce project to the lead
    status: finished
  lead: ascopatz
  log_url: https://docs.google.com/document/d/1YC_wtW5Q
  milestones:
    - audience:
        - lead
        - pi
        - group_members
      due_date: '2020-05-20'
      name: Project lead presentation
      notes:
        - do background reading
        - understand math
      objective: lead presents background reading and initial project plan
      progress:
        figure:
          - token that dereferences a figure or image in group local storage db
        slides_urls:
          - url to slides describing the development, e.g. Google slides url
        text: The samples have been synthesized and places in the sample cupboard.
          They turned out well and are blue as expected
      status: proposed
      tasks:
        - 1saefadf-wdaagea2
      type: meeting
      uuid: milestone_uuid_sb1
    - audience:
        - lead
        - pi
        - group_members
      due_date: '2020-05-27'
      name: planning meeting
      objective: develop a detailed plan with dates
      status: proposed
      type: mergedpr
      uuid: milestone_uuid_sb1_2
  name: First Projectum
  other_urls:
    - https://docs.google.com/document/d/analysis
  pi_id: scopatz
  product_url: https://docs.google.com/document/d/manuscript
  status: started
  supplementary_info_urls:
    - https://google.com
    - https://nytimes.com

JSON/Mongo Example

{
    "_id": "ab_inactive",
    "begin_date": "2020-05-03",
    "deliverable": {
        "due_date": "2021-05-03",
        "status": "paused"
    },
    "description": "a prum that has various inactive states in milestones and overall",
    "grants": "dmref15",
    "kickoff": {
        "due_date": "2021-05-03",
        "name": "Kickoff",
        "status": "backburner",
        "type": "meeting"
    },
    "lead": "abeing",
    "milestones": [
        {
            "due_date": "2021-05-03",
            "name": "Milestone",
            "status": "converged",
            "uuid": "milestone_uuid_inactive"
        }
    ],
    "status": "backburner"
}
{
    "_id": "pl_firstprojectum",
    "begin_date": "2020-07-25",
    "deliverable": {
        "due_date": "2021-08-26",
        "status": "finished"
    },
    "end_date": "2020-07-27",
    "kickoff": {
        "due_date": "2021-08-03",
        "name": "Kickoff",
        "status": "backburner"
    },
    "lead": "pliu",
    "milestones": [
        {
            "due_date": "2021-08-03",
            "name": "Milestone",
            "status": "converged",
            "uuid": "milestone_uuid_pl1"
        }
    ],
    "status": "finished"
}
{
    "_id": "pl_secondprojectum",
    "begin_date": "2020-07-25",
    "deliverable": {
        "due_date": "2021-08-26",
        "status": "finished"
    },
    "kickoff": {
        "due_date": "2021-08-03",
        "name": "Kickoff",
        "status": "backburner"
    },
    "lead": "pliu",
    "milestones": [
        {
            "due_date": "2021-08-03",
            "name": "Milestone",
            "status": "converged",
            "uuid": "milestone_uuid_pl2"
        }
    ],
    "status": "proposed"
}
{
    "_id": "pl_thirdprojectum",
    "begin_date": "2020-07-25",
    "deliverable": {
        "due_date": "2021-08-26",
        "status": "finished"
    },
    "kickoff": {
        "due_date": "2021-08-03",
        "name": "Kickoff",
        "status": "backburner"
    },
    "lead": "pliu",
    "milestones": [
        {
            "due_date": "2021-08-03",
            "name": "Milestone",
            "status": "converged",
            "uuid": "milestone_uuid_pl3"
        }
    ],
    "status": "backburner"
}
{
    "_id": "sb_firstprojectum",
    "begin_date": "2020-04-28",
    "collaborators": [
        "aeinstein",
        "pdirac"
    ],
    "deliverable": {
        "audience": [
            "beginning grad in chemistry"
        ],
        "due_date": "2021-05-05",
        "notes": [
            "deliverable note"
        ],
        "platform": "description of how and where the audience will access the deliverable.  Journal if it is a paper",
        "roll_out": [
            "steps that the audience will take to access and interact with the deliverable",
            "not needed for paper submissions"
        ],
        "scope": [
            "UCs that are supported or some other scope description if it is software",
            "sketch of science story if it is paper"
        ],
        "status": "proposed",
        "success_def": "audience is happy"
    },
    "description": "My first projectum",
    "grants": "SymPy-1.1",
    "group_members": [
        "ascopatz"
    ],
    "kickoff": {
        "audience": [
            "lead",
            "pi",
            "group_members"
        ],
        "date": "2020-05-05",
        "due_date": "2020-05-06",
        "end_date": "2020-05-07",
        "name": "Kick off meeting",
        "notes": [
            "kickoff note"
        ],
        "objective": "introduce project to the lead",
        "status": "finished"
    },
    "lead": "ascopatz",
    "log_url": "https://docs.google.com/document/d/1YC_wtW5Q",
    "milestones": [
        {
            "audience": [
                "lead",
                "pi",
                "group_members"
            ],
            "due_date": "2020-05-20",
            "name": "Project lead presentation",
            "notes": [
                "do background reading",
                "understand math"
            ],
            "objective": "lead presents background reading and initial project plan",
            "progress": {
                "figure": [
                    "token that dereferences a figure or image in group local storage db"
                ],
                "slides_urls": [
                    "url to slides describing the development, e.g. Google slides url"
                ],
                "text": "The samples have been synthesized and places in the sample cupboard. They turned out well and are blue as expected"
            },
            "status": "proposed",
            "tasks": [
                "1saefadf-wdaagea2"
            ],
            "type": "meeting",
            "uuid": "milestone_uuid_sb1"
        },
        {
            "audience": [
                "lead",
                "pi",
                "group_members"
            ],
            "due_date": "2020-05-27",
            "name": "planning meeting",
            "objective": "develop a detailed plan with dates",
            "status": "proposed",
            "type": "mergedpr",
            "uuid": "milestone_uuid_sb1_2"
        }
    ],
    "name": "First Projectum",
    "other_urls": [
        "https://docs.google.com/document/d/analysis"
    ],
    "pi_id": "scopatz",
    "product_url": "https://docs.google.com/document/d/manuscript",
    "status": "started",
    "supplementary_info_urls": [
        "https://google.com",
        "https://nytimes.com"
    ]
}