# Proposed JsonSchema for The new ResourceType People/Skills
## Json-Schema
The following is the proposed json-schema that was derived from this [google sheet](https://docs.google.com/spreadsheets/d/1rFLT_ccrpVnE0jeWv-VSd3Hk3lxJIXrQbZPSyynALAs).
```json=
{
"$id": "https://api.openteams.com/json-schema/PeopleSkills/v0",
"$schema": "http://json-schema.org/draft-04/schema",
"title": "People Skills",
"description": "A resource to gather information on skills and experience for project resourcing (finding apporpriate people for a project).",
"properties": {
"name": {
"type": "string",
"description": "First name of the contact for this application to the OpenTeams Partner Program."
},
"timezone": {
"type": "string",
"description": "A code identifying a timezone. eg. MST"
},
"skills": {
"type": "array",
"items": {
"$ref": "#/definitions/skill"
}
}
},
"required": [
"name",
"timezone",
"skills"
],
"definitions": {
"skill": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"level": {
"type": "string",
"enum": [
"beginner",
"intermediate",
"advanced",
"excellent"
]
},
"experience": {
"type": "string",
"enum": [
"0 to 2 years",
"2 to 5 years",
"more than 5 years"
]
},
"comment": {
"type": "string"
}
},
"required": [
"name",
"level",
"experience"
]
}
}
}
```
## Json Object
*This resource needs the following properties added:*
* url for the contributor's user account if it exists
* url for the partner that owns the contributor profile
The Json object would look like this:
```json=
{
"name": "Kevin Lee",
"timezone": "MST",
"skills": [
{
"name": "C++",
"experience": "2 to 5 years",
"level": "Intermediate",
"comment": "I have contributed to numba. I am familiar with high level compiler concepts but have never worked with most of them directly (other than parsing)."
},
{
"name": "Javascript",
"experience": "less than a year",
"level": "Junior",
"comment": "I have profesional experience with Javascript. Also, I was a teacher in a JS/Web bootcamp"
}
]
}
```
## Skills Resource
For the skills desired, let's define a collection of skills with descriptions. This would be the set of skills desired, like C++, Python, etc. that are in the spreadsheet.
### Skills Resource - json-Schema
```json=
{
"$id": "https://api.openteams.com/json-schema/Skills/v0",
"$schema": "http://json-schema.org/draft-04/schema",
"title": "Skills",
"description": "A resource that represents a skill",
"properties": {
"name": {
"type": "string"
},
"description": {
"type": "string"
}
},
"required": ["name"]
}
```
## Partner Skillsets Listing
This should be a resource that defines a list of the skills defined in the Skills collection to be used in a user interface form collecting the skills for contributors within a specific partner. The resource should have a url property indicating the partner that the listing belongs to.
```json=
{
"$id": "https://api.openteams.com/json-schema/Skills/v0",
"$schema": "http://json-schema.org/draft-04/schema",
"title": "Skills",
"description": "A resource that represents a list of the skills defined in the Skills collection to be used in a user interface form collecting the skills for contributors within a specific partner.",
"properties": {
"partner": {
"type": "string",
},
"skills": {
"type": "array",
"items": {
"type": "string"
}
},
},
}
```