Workflows and Pipelines
Using a GitHub Actions workflow file, we created separate pipelines for the backend and frontend of each environment (i.e. Dev, QA, and Prod).[A1] There are three pipelines configured in the GitHub actions workflow for each service. Below are the steps and deployment strategies included in the pipeline:
For QA and DEV:
1. Triggered when any new tag is pushed to a repository (repo).
2. Clone the repo.
3. Copy the .env variables from GitHub Actions secrets into a configmap.yaml file.
4. Build a Docker image.
For PROD:
The pipeline is triggered on every push to the repo.
Then, connect to the production server via a Secure Shell and create an .env file from GitHub Actions secrets.
3. Navigate to the specific directory and run the deploy.sh file, which includes all the deployment steps. [A2]

Data Dictionary – Schemas
Field Name
Type
Required
Enum Values
Description
Notification
user_id
string
yes
User ID of person[A3]
subject
string
yes
Notification title
is_read
boolean
yes
Boolean to check notification read/unread status
createdAt
string
yes
Created time
updatedAt
string
yes
Updated time
description
string
yes
Description/body of notification
type
string
yes
Type of notification
Report (Added fields)
ceritificateOsid
string
no
Osid of result, regular/regional
Student
admissionNo
string
no
Admission number of student
ActivityLog
user_id
string
no
User ID of the person [A4] performing the action
user_name
string
no
First name of the user
last_name
string
no
Last name of the user
action
string
no
Action performed by the user
entity_name
string
no
Super Admin, School, Inspector, Examiner, Student, Result, Report, StateAdmin, LgaAdmin, SchoolAdmin, LGAADMIN, Certificate
Name of the entity associated with the action
entity_id
string
no
ID of the entity associated with the action
details
object
no
Additional details about the action
Class
schoolId
string
no
School ID
schoolName
string
no
School name
classId
string
no
Class ID
classType
string
no
Class type
className
string
yes
Class name
subClass
string
no
A, B, C, D, E
Subclass name
classSize
string
no
Class size
teachersAssigned
string
no
Teacher’s assigned
teachersEmail
string
no
Teacher's email
academicYear
string
no
Academic year
subjects
string
no
English, Mathematics, Civic, Economics, Marketing, Commerce, Accounting, Animal Husbandry, Agricultural Science, Fine Arts, CRS, IRS, Arabic, French, Edo Language, Biology, Chemistry, Food and Nutrition, Government, History
Subject
ClassResults
uniqueId
string
yes
certificateId
string
no
studentId
string
yes
admissionNo
string
no
classType
string
no
classId
string
no
className
string
no
subClass
string
no
firstName
string
yes
middleName
string
no
lastName
string
yes
schoolId
string
no
schoolName
string
no
academicYear
string
no
teacherId
string
no
teacherName
string
no
status
string
no
term
string
no
highestAverage
string
no
lowestAverage
string
no
finalAverage
string
no
noInClass
string
no
noOfDaysSchoolOpened
string
no
noOfDaysPresent
string
no
noOfDaysAbsent
string
no
psychomotorProblemSolving
string
no
psychomotorCriticalThinking
string
no
psychomotorCreativity
string
no
psychomotorAdability
string
no
psychomotorCommunication
string
no
psychomotorCollaboration
string
no
behaviouralReportEmotionalIntelligence
string
no
behaviouralReportSharedValues
string
no
behaviouralReportInterpersonalSkills
string
no
behaviouralReportAttentionSpan
string
no
ClassTeacherName
string
no
ClassTeacherComment
string
no
executivePrincipalsComment
string
no
subject1
string
no
marks1_CA1
string
no
marks1_CA2
string
no
marks1_70
string
no
marks1
string
no
grade1
string
no
subject2
string
no
marks2_CA1
string
no
marks2_CA2
string
no
marks2_70
string
no
marks2
string
no
grade2
string
no
subject3
string
no
marks3_CA1
string
no
marks3_CA2
string
no
marks3_70
string
no
marks3
string
no
grade3
string
no
subject4
string
no
marks4_CA1
string
no
marks4_CA2
string
no
marks4_70
string
no
marks4
string
no
grade4
string
no
subject5
string
no
marks5_CA1
string
no
marks5_CA2
string
no
marks5_70
string
no
marks5
string
no
grade5
string
no
subject6
string
no
marks6_CA1
string
no
marks6_CA2
string
no
marks6_70
string
no
marks6
string
no
grade6
string
no
subject7
string
no
marks7_CA1
string
no
marks7_CA2
string
no
marks7_70
string
no
marks7
string
no
grade7
string
no
subject8
string
no
marks8_CA1
string
no
marks8_CA2
string
no
marks8_70
string
no
marks8
string
no
grade8
string
no
subject9
string
no
marks9_CA1
string
no
marks9_CA2
string
no
marks9_70
string
no
marks9
string
no
grade9
string
no
subject10
string
no
marks10_CA1
string
no
marks10_CA2
string
no
marks10_70
string
no
marks10
string
no
grade10
string
no
subject11
string
no
marks11_CA1
string
no
marks11_CA2
string
no
marks11_70
string
no
marks11
string
no
grade11
string
no
subject12
string
no
marks12_CA1
string
no
marks12_CA2
string
no
marks12_70
string
no
marks12
string
no
grade12
string
no
subject13
string
no
marks13_CA1
string
no
marks13_CA2
string
no
marks13_70
string
no
marks13
string
no
grade13
string
no
subject14
string
no
marks14_CA1
string
no
marks14_CA2
string
no
marks14_70
string
no
marks14
string
no
grade14
string
no
subject15
string
no
marks15_CA1
string
no
marks15_CA2
string
no
marks15_70
string
no
marks15
string
no
grade15
string
no
subject16
string
no
marks16_CA1
string
no
marks16_CA2
string
no
marks16_70
string
no
marks16
string
no
grade16
string
no
subject17
string
no
marks17_CA1
string
no
marks17_CA2
string
no
marks17_70
string
no
marks17
string
no
grade17
string
no
subject18
string
no
marks18_CA1
string
no
marks18_CA2
string
no
marks18_70
string
no
marks18
string
no
grade18
string
no
subject19
string
no
marks19_CA1
string
no
marks19_CA2
string
no
marks19_70
string
no
marks19
string
no
grade19
string
no
subject20
string
no
marks20_CA1
string
no
marks20_CA2
string
no
marks20_70
string
no
marks20
string
no
grade20
string
no
ClassStudents
studentId
string
no
classId
string
no
className
string
yes
schoolId
string
no
schoolName
string
no
firstName
string
no
middleName
string
no
lastName
string
no
phoneNumber
string
no
maths
string
no
english
string
no
intsc
string
no
biology
string
no
academicYear
string
no
certificateNo
string
no
status
string
no
schoolAdminId
string
no
schoolAdminName
string
no
ClassTeacher
teacherId
string
no
classId
string
no
className
string
yes
subClass
string
no
schoolId
string
no
schoolName
string
no
classTeacherId
string
no
name
string
no
string
no
academicYear
string
no
status
string
no
ACTIVE, DEACTIVE, PENDING
Examiner
name
string
yes
string
yes
phoneNumber
string
yes
status
string
no
ACTIVE, DEACTIVE, PENDING
password
string
yes
state
string
no
Inspector
name
string
yes
string
yes
phoneNumber
string
yes
status
string
no
ACTIVE, DEACTIVE, PENDING
password
string
yes
state
string
no
LgaAdmin
name
string
yes
string
yes
phoneNumber
string
yes
status
string
no
password
string
yes
lgaName
string
no
state
string
no
lgaId
string
no
stateId
string
no
LGAs
lgaId
string
no
lgaName
string
yes
stateId
string
no
stateName
string
no
LgaStateAdmin
name
string
yes
string
yes
phoneNumber
string
yes
status
string
no
ACTIVE, DEACTIVE, PENDING
type
string
no
subType
string
no
password
string
yes
lgaName
string
no
state
string
no
Report
studentJssId
string
no
studentSssId
string
no
StudentOsid
string
no
description
string
yes
file
string
no
imageUrl
string
no
status
string
no
studentId
string
no
studentName
string
no
examinerId
string
no
examinerName
string
no
inspectorId
string
no
teacherId
string
no
schoolId
string
no
schoolName
string
no
superAdminId
string
no
examinerNotificationStatus
boolean
no
inspectorNotificationStatus
boolean
no
teacherNotificationStatus
boolean
no
schoolNotificationStatus
boolean
no
superAdminNotificationStatus
boolean
no
certificateType
string
no
Results
uniqueId
string
yes
studentId
string
yes
examinerId
string
no
schoolType
string
no
class
string
no
examNum
string
no
firstName
string
yes
middleName
string
no
lastName
string
yes
schoolId
string
yes
schoolName
string
no
examDate
string
no
subjectAndGrade
string
no
academicYear
string
no
duration
string
no
degree
string
no
status
string
no
examinerName
string
no
grade
string
no
term
string
no
certificateId
string
no
certificateNo
string
no
candidateNo
string
no
verified
boolean
no
School
schoolId
string
no
schoolName
string
yes
teacherSize
string
no
0-10, 10-20, 20-30, 30-40, 40-50, 50-60, 60-70, 70-80, 80-90, 90-100
studentSize
string
no
0-100, 100-200, 200-300, 300-400, 400-500, 500-600, 600-700, 700-800, 800-900, 900-1000
administratorName
string
no
administratorEmail
string
yes
administratorPhoneNumber
string
yes
lgaAdminId
string
no
stateAdminId
string
no
password
string
no
lgaName
string
no
schoolType
string
no
ECCDE, Basic, TVET, SSE
state
string
no
schoolStateId
string
no
schoolLgaId
string
no
StateAdmin
name
string
yes
string
yes
phoneNumber
string
no
status
string
no
password
string
yes
state
string
no
stateId
string
no
States
stateId
string
no
stateName
string
yes
Student
studentId
string
no
studentJssId
string
no
studentSssId
string
no
firstName
string
yes
middleName
string
no
lastName
string
yes
phoneNumber
string
yes
string
yes
nin
string
no
school
string
yes
class
string
no
parentEmail
string
no
guardianEmail
string
no
studentPrimaryId
string
no
studentSecondaryId
string
no
password
string
yes
Super Admin
name
string
yes
string
yes
phoneNumber
string
no
password
string
yes
Teacher
schoolId
string
no
schoolName
string
no
classId
string
no
className
string
no
subClass
string
no
teacherId
string
no
name
string
yes
string
yes
phoneNumber
string
yes
teacherSchoolId
string
no
profileImage
string
no
password
string
no
status
string
no
ACTIVE, DEACTIVE, PENDING
VerificationHistory
resultId
string
yes
studentId
string
no
firstName
string
no
middleName
string
no
lastName
string
no
schoolId
string
no
schoolName
string
no
status
string
no
candidateNo
string
no
verificationReason
string
no
certificateNo
string
no
class
string
no
examNum
string
no
academicYear
string
no
examinerId
string
no
verifierId
string
no
verifierName
string
no
Verifier
name
string
yes
string
yes
phoneNumber
string
yes
status
string
no
ACTIVE, DEACTIVE, PENDING
password
string
yes
VerifierNotification
resultId
string
no
studentJssId
string
no
studentSssId
string
no
studentId
string
no
studentName
string
no
examinerId
string
no
examinerName
string
no
schoolId
string
no
schoolName
string
no
verifierName
string
no
verifierId
string
no
type
string
no
description
string
yes
examinerNotificationStatus
boolean
no
inspectorNotificationStatus
boolean
no
teacherNotificationStatus
boolean
no
schoolNotificationStatus
boolean
no
superAdminNotificationStatus
boolean
no
studentNotificationStatus
boolean
no
[A1]Please check this sentence after editing. The original meaning was unclear.
[A2]This paragraph was tricky to edit. Please check that the original meaning has been retained.
[A3]Should this be “persona”?
[A4]Same here.
Last updated