From 5cbd3cec2a40e759bf3fc979db847aef2d0211d9 Mon Sep 17 00:00:00 2001 From: jlwaugh Date: Fri, 13 Jan 2023 11:18:21 -0500 Subject: [PATCH] Project schema --- types/project/Project.md | 76 +++++++++++++++++++++++++++++++++++++++ types/project/Projects.md | 76 +++++++++++++++++++++++++++++++++++++++ types/project/Task.md | 33 +++++++++++++++++ types/project/Tasks.md | 32 +++++++++++++++++ 4 files changed, 217 insertions(+) create mode 100644 types/project/Project.md create mode 100644 types/project/Projects.md create mode 100644 types/project/Task.md create mode 100644 types/project/Tasks.md diff --git a/types/project/Project.md b/types/project/Project.md new file mode 100644 index 0000000..9f54f6a --- /dev/null +++ b/types/project/Project.md @@ -0,0 +1,76 @@ +# Project + +A `Project` with `metadata`, `editors`, and `tasks`. + +This standard is in DRAFT mode. It may be heavily changed in the future. + +## Schema + +| Key | Type | Description | +|----------------|------------------------------------------|----------------------------------------------------------------| +| `metadata` | [Metadata](../common/Metadata.md) | information describing a project | +| **`editors`** | [Account List](../common/AccountList.md) | list of accounts that control a project | +| **`tasks`** | [Tasks](Tasks.md) | list of specific tasks (with rewards) | + +## Example + +```json +{ + "metadata": { + "name": "Near Social", + "image": { + "ipfs_cid": "bafkreid55mbassw335wezjk3gc5rzizwrqpenfxk3dyyljumxvezplhjg4" + }, + "linktree": { + "twitter": "NearSocial_", + "github": "NearSocial", + "telegram": "NearSocial", + "website": "near.social" + }, + "description": "Near Social is ...", + "backgroundImage": { + "ipfs_cid": "bafybeigwqqx2eccpyip66bn2bn6janvss2snv3xuuus3ltin6i46mfkyam" + }, + "tags": { + "project": "", + "near-social": "", + "open-source": "" + } + }, + "editors": { + "root.near": "", + "mob.near": "", + "infinity.near": "" + }, + "tasks": { + "task_1": { + "metadata": { + "name": "Task 1", + "description": "Create ABC", + "tags": { + "design": "", + "art": "", + "community": "" + } + }, + "token": "token.paras.near", + "amount": "359", + "worker": "create.near" + }, + "task_2": { + "metadata": { + "name": "Task 2", + "description": "Create XYZ", + "tags": { + "dev": "", + "product": "", + "javascript": "" + } + }, + "token": "meta-token.near", + "amount": "888", + "worker": "devs.near" + } + } +} +``` diff --git a/types/project/Projects.md b/types/project/Projects.md new file mode 100644 index 0000000..126d9e0 --- /dev/null +++ b/types/project/Projects.md @@ -0,0 +1,76 @@ +# Projects + +`Projects` with `metadata`, `editors`, and `tasks`. + +This standard is in DRAFT mode. It may be heavily changed in the future. + +## Schema + +| Key | Type | Description | +|---------------------|----------------------|-----------------------------------------------------------------------| +| `[project_name]` | [Project](./Project.md) | key is the name of a project, for example: `near_social` | + +## Example + +```json +{ + "near_social": { + "metadata": { + "name": "Near Social", + "image": { + "ipfs_cid": "bafkreid55mbassw335wezjk3gc5rzizwrqpenfxk3dyyljumxvezplhjg4" + }, + "linktree": { + "twitter": "NearSocial_", + "github": "NearSocial", + "telegram": "NearSocial", + "website": "near.social" + }, + "description": "Near Social is ...", + "backgroundImage": { + "ipfs_cid": "bafybeigwqqx2eccpyip66bn2bn6janvss2snv3xuuus3ltin6i46mfkyam" + }, + "tags": { + "project": "", + "near-social": "", + "open-source": "" + } + }, + "editors": { + "root.near": "", + "mob.near": "", + "infinity.near": "" + }, + "tasks": { + "task_1": { + "metadata": { + "name": "Task 1", + "description": "Create ABC", + "tags": { + "design": "", + "art": "", + "community": "" + } + }, + "token": "token.paras.near", + "amount": "359", + "worker": "create.near" + }, + "task_2": { + "metadata": { + "name": "Task 2", + "description": "Create XYZ", + "tags": { + "dev": "", + "product": "", + "javascript": "" + } + }, + "token": "meta-token.near", + "amount": "888", + "worker": "devs.near", + } + } + } +} +``` \ No newline at end of file diff --git a/types/project/Task.md b/types/project/Task.md new file mode 100644 index 0000000..f907d75 --- /dev/null +++ b/types/project/Task.md @@ -0,0 +1,33 @@ +# Task + +A `Task` is work that needs to be done for a `Project`. + +This standard is in DRAFT mode. It may be heavily changed in the future. + +## Schema + +| Key | Type | Description | +|---------------------|----------------------|-----------------------------------------------------------------------| +| `metadata` | [Metadata](../common/Metadata.md) | info describing a task | +| `token` | String | key is the ID of a token used as reward for the task | +| `amount` | String | key is the amount of tokens paid to the worker | +| `worker` | String | key is the account ID of someone who claims the task | + +## Example + +```json +{ + "metadata": { + "name": "TODO", + "description": "Create ...", + "tags": { + "design": "", + "art": "", + "community": "" + } + }, + "token": "meta-token.near", + "amount": "888", + "worker": "devs.near" +} +``` \ No newline at end of file diff --git a/types/project/Tasks.md b/types/project/Tasks.md new file mode 100644 index 0000000..576d4b2 --- /dev/null +++ b/types/project/Tasks.md @@ -0,0 +1,32 @@ +# Tasks + +`Tasks` with metadata, token rewards, and a worker. + +This standard is in DRAFT mode. It may be heavily changed in the future. + +## Schema + +| Key | Type | Description | +|---------------------|----------------------|-----------------------------------------------------------------------| +| `[task_id]` | [Task](./Task.md) | key is the ID / name of a task | + +## Example + +```json +{ + "example_task": { + "metadata": { + "name": "TODO", + "description": "Create ...", + "tags": { + "design": "", + "art": "", + "community": "" + } + }, + "token": "meta-token.near", + "amount": "888", + "worker": "devs.near" + } +} +``` \ No newline at end of file