Skip to content
Permalink
Browse files

Merge pull request #17 from OpenCerts/feat/schema1.5

schema 1.5

Added qualificationLevel array
Added fieldOfStudy array
Added attainmentDate date-time string
Added field to transcript: languageMedium
Added fields to recipient: studentId, nric, fin
  • Loading branch information...
rjchow committed Apr 12, 2019
2 parents a97a5db + 1201041 commit fdb06f1122751fd792b0d1e82dfd5edfc4a1b21d
Showing with 733 additions and 2 deletions.
  1. +7 −0 schema/1.5/changelog
  2. +101 −0 schema/1.5/example.json
  3. +216 −0 schema/1.5/schema.json
  4. +406 −0 schema/1.5/schema.test.js
  5. +3 −2 src/index.js
@@ -0,0 +1,7 @@
changelog

Added qualificationLevel field
Added attainmentDate date-time string
Added fieldOfStudy field
Added field to transcript: languageMedium
Added fields to recipient: studentId, nric, fin
@@ -0,0 +1,101 @@
{
"id": "SERIAL-2018-08-01-112",
"$template": "BLOCKCHAIN-ACADEMY-2018-001",
"description": "This masters is awarded to developers who can blockchain",
"issuedOn": "2018-08-01T00:00:00+08:00",
"expiresOn": "2118-08-01T00:00:00+08:00",
"name": "Master of Blockchain",
"admissionDate": "2017-07-01T00:00:00+08:00",
"graduationDate": "2018-08-01T00:00:00+08:00",
"attainmentDate": "2018-07-25T00:00:00+08:00",
"issuers": [
{
"name": "Blockchain Academy",
"did": "DID:SG-UEN:U18274928E",
"url": "https://blockchainacademy.com",
"email": "registrar@blockchainacademy.com",
"certificateStore": "0xd9580260be45c3c0c2fb259a82f219b513054012",
"additionalProp": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"name": "School of Crypto-economics",
"url": "https://ceschool.sg",
"certificateStore": "0xA33ddAEE02369D18A21E29dD2E7A12d65eE671d2"
}
],
"recipient": {
"name": "Mr Blockchain",
"did": "DID:SG-NRIC:S99999999A",
"email": "mr-blockchain@gmail.com",
"phone": "+65 88888888",
"additionalProp": "0x0000000000000000000000000000000000000000000000000000000000000000",
"nric": "S0000001Z",
"fin": "F0000001Z",
"studentId": "1232"
},
"qualificationLevel": [{
"frameworkName": "singapore/ssec-eqa",
"frameworkVersion": "2015",
"code": "51",
"description": "Polytechnic Diploma"
},
{
"frameworkName": "international/isced",
"frameworkVersion": "2011",
"code": "55",
"description": "(Short-cycle tertiary education) Vocational"
}],
"fieldOfStudy": [
{
"frameworkName": "singapore/ssec-fos",
"frameworkVersion": "2015",
"code": "0897",
"description": "Biomedical Science"
}
],
"transcript": [
{
"name": "Bitcoin",
"grade": "A+",
"courseCredit": 3,
"courseCode": "BTC-01",
"examinationDate": "2018-08-01T00:00:00+08:00",
"url": "https://blockchainacademy.com/subject/BTC-01",
"description": "Everything and more about bitcoin!"
},
{
"name": "Ethereum",
"grade": "A+",
"courseCredit": "3.5",
"courseCode": "ETH-01",
"examinationDate": "2018-08-01T00:00:00+08:00",
"url": "https://blockchainacademy.com/subject/ETH-01",
"description": "Everything and more about ethereum!"
}
],
"cumulativeScore": 3.9935,
"additionalData": {
"coCurricularActivities": [
{
"name": "Crypto-investment Club",
"position": "Club President",
"startDate": "2017-08-01T00:00:00+08:00",
"endDate": "2018-08-01T00:00:00+08:00",
"remarks": "Top trader (2018)"
}
],
"npfa": "silver",
"images": {
"signature1": {
"name": "Mr Important",
"designation": "President",
"signature": "<-- Base64 Image -->"
},
"signature2": {
"name": "Mr Not-So-Important",
"designation": "Chairman, Blockchain Faculty",
"signature": "<-- Base64 Image -->"
}
}
}
}
@@ -0,0 +1,216 @@
{
"$id": "opencerts/v1.5",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"id": {
"type": "string"
},
"$template": {
"type": "string"
},
"description": {
"type": "string"
},
"issuedOn": {
"description": "The date that this certificate was issued by the issuer(s)",
"type": "string",
"format": "date-time"
},
"expiresOn": {
"type": "string",
"format": "date-time"
},
"admissionDate": {
"type": "string",
"format": "date-time"
},
"graduationDate": {
"description": "The date that this student graduated from the course",
"type": "string",
"format": "date-time"
},
"attainmentDate": {
"description": "The date that this qualification was awarded to the recipient",
"type": "string",
"format": "date-time"
},
"qualificationLevel": {
"type": "array",
"description": "This is an array of objects used to attach descriptors from frameworks such as Singapore's SSEC-EQA or the internationally recognised ISCED. Multiple instances are allowed to indicate either equivalents or to indicate a multi-level qualifications",
"items": {
"type": "object",
"required": [
"frameworkName",
"frameworkVersion",
"code",
"description"
],
"properties": {
"frameworkName": {
"type": "string",
"examples": ["singapore/ssec-eqa", "international/isced"]
},
"frameworkVersion": {
"type": "string",
"examples": ["2015", "2011"]
},
"code": {
"type": "string",
"examples": ["51", "55"]
},
"description": {
"type": "string",
"examples": [
"Polytechnic Diploma",
"(Short-cycle tertiary education) Vocational"
]
}
}
}
},
"fieldOfStudy": {
"type": "array",
"description": "This is an array of objects used to attach descriptors from frameworks such as Singapore's SSEC-FOS or the internationally recognised ISCED-F. Multiple instances are allowed to indicate either equivalents or to indicate a multi-field qualification such as double degrees",
"items": {
"type": "object",
"required": [
"frameworkName",
"frameworkVersion",
"code",
"description"
],
"properties": {
"frameworkName": {
"type": "string",
"description": "Prepend the actual framework name with the scope of the framework",
"examples": ["singapore/ssec-fos", "international/isced-f"]
},
"frameworkVersion": {
"type": "string",
"examples": ["2015", "2013"]
},
"code": {
"type": "string",
"examples": ["0897"]
},
"description": {
"type": "string",
"examples": ["Biomedical Science"]
}
}
}
},
"cumulativeScore": {
"type": "number"
},
"name": {
"type": "string"
},
"issuers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"did": {
"type": "string"
},
"url": {
"type": "string",
"format": "url"
},
"email": {
"type": "string",
"format": "email"
},
"phone": {
"type": "string"
},
"certificateStore": {
"type": "string"
}
},
"required": ["name", "certificateStore"],
"additionalProperties": true
},
"minItems": 1
},
"recipient": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"did": {
"type": "string"
},
"url": {
"type": "string"
},
"email": {
"type": "string"
},
"phone": {
"type": "string"
},
"nric": {
"type": "string"
},
"fin": {
"type": "string"
},
"studentId": {
"type": "string"
}
},
"required": ["name"],
"additionalProperties": true
},
"transcript": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"score": {
"type": ["number", "string"]
},
"grade": {
"type": ["number", "string"]
},
"courseCredit": {
"type": ["number", "string"]
},
"courseCode": {
"type": "string"
},
"examinationDate": {
"type": "string",
"format": "date-time"
},
"url": {
"type": "string"
},
"description": {
"type": "string"
},
"languageMedium": {
"description": "Language that the course was undertaken in",
"type": "string"
}
},
"required": ["name"]
}
},
"additionalData": {
"type": "object"
}
},
"required": ["id", "name", "issuedOn", "issuers", "recipient"],
"additionalProperties": false
}

0 comments on commit fdb06f1

Please sign in to comment.
You can’t perform that action at this time.