Skip to content

Community Milestones

Gabriel Jacoby-Cooper edited this page Feb 10, 2023 · 2 revisions

JSON Specification

{
    "id": "43BF3AF9-D2D4-43D7-87F0-5553AC39174E",
    "name": "Milestone Name",
    "extendedDescription": "A short description of this milestone should be written here.",
    "progress": 0,
    "progressType": "BoardBusCount",
    "goals": [
        10,
        20,
        30
    ],
    "signature": "eWKS\/3cRqNnnD8hvcV25eqzwjSFv5wxW4mFKrNSO6MMssGQY0H7S7W2moMjADS5rk9fP\/N9Xybzvs7bGH2tkKg=="
}
  • id: A UUID that uniquely identifies a particular milestone in the database.
  • name: The milestone’s proper name, which will be seen by users.
  • extendedDescription: A short description detailing the milestone’s goal criteria, among other relevant information.
  • progress: The number of instances in which the milestone’s incrementation criterium has been met.
  • progressType: A string that indicates the milestone’s incrementation criterium. All clients must agree on a list of valid values, including the specific incrementation criteria that are respectively associated with those values.
  • goals: An array of integers in which each element represents the goal for a particular “stage” of the milestone. Note that this array will not necessarily be sorted.
  • signature: A cryptographic signature that’s used by the server for authentication purposes. Clients should ignore this field.

HTTP Methods

  • GET: Returns the JSON information of all milestones in the database.
  • POST: Uses the given JSON information to add a new milestone to the database.
  • PATCH: Increments the progress of a given milestone by one.
  • DELETE: Removes the given milestone from the database.