Problem Statement :
Course Creator should be able to attach more than one certificate template to a course so that users receive different certificates based on the defined filter criteria for each template. The creator should also be able to delete one or more certificate templates from the course.
Solution Approach :
1. Add Certificate Template
API Specification : API should take the course details , certificate name and the metadata of the certificate template which has to be attached for that particular course. Course creator can add new certificate template to the course by specifying the filter criteria for issuing the certificate, in the filters field of the API. The filters field will be added as a new entry in the metadata of the certificate. All the certificate templates for a particular course will be stored in the database as a Key-Value pair where certificate name would be the key and its metadata would be the value.
2. Delete Certificate Template
API Specification : API should take the course details and name of the certificate which the course creator wants to delete.After the certificate template gets deleted, its respective entry in database stored as a Key-Value pair will get deleted.
API Design :
Add Certificate Template API
POST /course/batch/cert/v1/template Request : { "params": {}, "request": { "courseId": "do_12347787978775440", "certificateName":"100PercentCompletionCertificate", "metadata": { "issuer": { "name": "Gujarat Council of Educational Research and Training", "url": "https://gcert.gujarat.gov.in/gcert/", "publicKey": [ "7", "8" ] }, "signatoryList": [ { "name": "CEO Gujarat", "id": "CEO", "designation": "CEO", "image": "https://cdn.pixabay.com/photo/2014/11/09/08/06/signature-523237__340.jpg" } ], "keys": { "id": "9" }, "htmlTemplate": "https://drive.google.com/uc?authuser=1&id=1ryB71i0Oqn2c3aqf9N6Lwvet-MZKytoM&export=download", "notifyTemplate": { "subject": "Course completion certificate for Course 03092019 Course", "stateImgUrl": "https://sunbirddev.blob.core.windows.net/orgemailtemplate/img/File-0128212938260643843.png", "regardsperson": "Chairperson", "regards": "Minister of Gujarat", "emailTemplateType": "defaultCertTemp" }, "filters": { "status": "2", "assessmentScore": { "<": "0.8" } } } } }
Delete Certificate Template API
DELETE /course/batch/cert/v1/template Request : { "params": { }, "request":{ "courseId": "do_12347787978775440", "certificateName": "Merit-Certificate" } }