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:

  1. The pipeline is triggered on every push to the repo.

  2. 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

email

string

no

academicYear

string

no

status

string

no

ACTIVE, DEACTIVE, PENDING

Examiner

name

string

yes

email

string

yes

phoneNumber

string

yes

status

string

no

ACTIVE, DEACTIVE, PENDING

password

string

yes

state

string

no

Inspector

name

string

yes

email

string

yes

phoneNumber

string

yes

status

string

no

ACTIVE, DEACTIVE, PENDING

password

string

yes

state

string

no

LgaAdmin

name

string

yes

email

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

email

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

email

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

email

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

email

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

email

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

email

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