# Students Module

Managing student classes and grades

# Student Module Overview

[View Students Module](https://cs.studianova.org/admin/students)

### Relevant Topics

{{@90#bkmrk-a-grade-span-covers-}}

{{@90#bkmrk-the-student%27s-year-i}}

{{@90#bkmrk-schools-refer-to-leg}}

{{@90#bkmrk-a-term-is-the-divisi}}

{{@90#bkmrk-in-summary%2C-enrollme}}

{{@90#bkmrk-the-plans-are-someti}}

{{@188#bkmrk-on-the-partner%27s-enr}}

### Student Module Overview

The primary function of the SIS is to track student information, so the student table is the heart of the solution. One record is created for each student during the registration process.

### Data Relationships

<div drawio-diagram="103"><img src="https://bsa.lynops.com/uploads/images/drawio/2024-01/drawing-5-1706234408.png" alt=""/></div>

Students are assigned to one homeroom. This homeroom is used to place the student in the correct group in Moodle so that only approved people can see their Moodle progress.

Each student is assigned a program of study, which outlines the classes and the curriculum each student should take in which term, using enrollment template records. As a student completes a plan, they will be assigned a new plan, therefore a student can have multiple related plan records.

Each student is in a grade level, they may enter a number 0 through 12. The grade level is a field in the student record, which allows PEMS to look up and auto-enter the student's school and and grade span.

For every term the student attends the school, PEMS creates a student term record. For example, the school term may be names Fall 2023, but the student term would be Fall 2023 SVG, including the student initials to indicate the record pertains only to that one student.

For every term the student attends the school, the student takes classes or rather, Moodle courses. An enrollment record is created for each class the student takes. The enrollment record specifies the class name that appears on the transcript, the specific curriculum which is the Moodle Course, and in which student term the student is taking that class, and the grade level of the student.

When student take assessments, their results are stored in the assessment results table.

Students require log-ins to the platform. One login record is created to store all logins. The student login records are used to create the Moodle login and Key Cloak SSO user.

# Students Table

**[Student Table](https://cs.studianova.org/admin/students)**

A student record is made from the enrollment form submitted from the Word Press site, after the administrator approved the enrollment. Fields in the enrollment form are mapped to the student record.

### Fields

**Name** - first, middle and last name from the enrollment form.

**Start date** - the date the student starts at the school, originally from the enrollment form, then updated as the student completed registration at the school.

**Graduation Date** - the last day of school the of the last grade level the school offers, calculated by PEMS and updated as the student progresses.

**Birth Date** - from the enrollment form.

**Gender** - from the enrollment form.

**Dis enrollment date** - the last day of school for the student who has transferred out of the school, blank if still enrolled.

**Remaining years** - PEMS calculates the number of years left to complete all years the school offers.

**Enrollment Year Terms** - students transfer in anytime during the school year, this is the number of terms the student may complete in their first year of enrollment. For example a school that offers two required terms, fall and spring. A student transfers to the school after the spring term starts. The student completes only one term in the Enrollment year.

**School Start Term** - a link to the school term in which the student begins at the school.

**Current grade level** - the grade level of the student which increased every year, unless they are not promoted (failed the year).

**Promotion** - default to promote. Select repeat if the student's grade level should not be promoted at the end of the academic year.

**Student Code** - The code is automatically assigned by PEMS and can not be changed by the user. The code is the student ID.

Status - planned for students who have registered but not yet started classes; active for currently enrolled and taking classes, disenrolled for students who have left the school; graduated if graduated, expelled if the student left involuntarily, suspended if the student has their access to the platform suspended with intention to re-instate.

**GPA -** overall GPA for the grade span the student is currently in.

**Weighted GPA** - overall weighted GPA for the grade span the student is currently in.

**Alternate GPA -** overall GPA for the grade span the student is currently in.

**Alternate Weighted GPA** - overall weighted GPA for the grade span the student is currently in.

**Notes** - long text field for discretionary use.

**Student First Term** - link to the student's first student term record.

**Current Program** - the active plan the student is currently following.

<p class="callout danger">11 FEB - there is no lookup of the current program field, hence the student is not linked to the program plan, which is necessary for the transcript view</p>

### Workflow

Based on Start Date and Start Grade Level, the student's first term, graduation date, remaining year, enrollment year terms, and total remaining terms are automatically calculated. These fields are updated when there are any changes to the input fields.

The student's current grade level is increased every year on the date specified by the school administration. Unless the user selects the Promotion field to be "repeat" all students are automatically promoted to the next grade level.

The grade span field represents a planning horizon. In general, students are assigned a specific plan that specifies classes to be taken for the entire grade span. The grade span is determined and updated based on the student's current grade level.

All new student records have status = planned.

When the student is updated to active, the start date is set to the day the status field is changed, and student accounts are made throughout the system so that the student is granted full access to the system.

The current program is the active plan the student is working on. Plans may be assigned, and deactivated, but PEMS still keeps track of any plan the student worked whether or not that plan was completed. Once the student has a plan assigned, PEMS auto-enrolls the student in all the classes specified under that plan.

### Student Record GPA Logic

There are four GPA fields to calculate in the student record. Calculate them all the same, recalculate when ever there is a change in the fields. Student GPAs are calculated at the close of a term. The school term status will change to past triggering the GPAs from the student terms to be included here.

If a student term status changes to past, recalculate all these fields.

For each student term, multiply the Grade Points field times the Student Term | Units Earned field

Sum all the values above

Sum all the units earned field from associated student terms.

Divide: (Grade Points x Units Earned ) / Units Earned

Enter into the respective GPA field in the student term record.

### Action Items JAN 2024

<p class="callout danger">| 1-MVP | TRANSCRIPT | Add the fields alternate GPA and alternate Weighted gpa - COMPLETED. Link student record to program plan table with look-up field - REMAINING. Implement GPA calculation logic - REMAINING</p>

<p class="callout danger">2-MVP | HOMEROOM| Remove link to Group record - enrollments specify group, not student records</p>

<p class="callout danger">2-MVP | HOMEROOM | Add link to Homeroom record</p>

<p class="callout danger">3-MVP | INTAKE | Complete auto-calculation of grade span, school, student code, graduation date, remaining years, enrollment year terms, total remaining terms, and link to school start term. Per [2. Student Intake Functions](https://bsa.lynops.com/books/personal-education-management-system/page/2-student-record-intake-functions "2. Student Intake Functions")</p>

<p class="callout danger">3-MVP | INTAKE | deleted</p>

# Student Terms Table

**[Student Terms](https://cs.studianova.org/admin/studentterms)**

### Relevant Topics

{{@90#bkmrk-a-term-is-the-divisi}}

{{@90#bkmrk-the-names-of-the-ter}}

{{@90#bkmrk-a-student-term-recor}}

{{@90#bkmrk-in-summary%2C-enrollme}}


### Student Terms Table Overview

Student terms are records created for each student for each term they are enrolled in the school. Where there is one school term record with a specific start and end date, there are multiple student term records with the same start and end date that are related to each individual student. Student Term records are child records to term, and also the student. They describe the many to many relationship between students and terms.

The student term records provide information on the student's academic performance in each school term, and stores the GPA achieved for that term.

<span id="bkmrk--0" style="font-weight: normal;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; white-space: pre-wrap;"><span style="border-width: initial; border-style: none; display: inline-block; overflow: hidden; width: 648px; height: 431px;">![](https://lh4.googleusercontent.com/zRWccIqJFrjRG0mecBEUvXz-73QYgWlmNfH6gCflJonNfVmEW_Gg1bl7y1BUftt_SPj-5k4QuaZWPa72UsjHQC4297jjtnA_tryvButYGmGpD1kssyrwLBTMNiabOV6fCkndP16HRZ3x4ntI1HwuEA)</span></span></span>

#####   


#####   


### Data Relationships

<div drawio-diagram="93"><img src="https://bsa.lynops.com/uploads/images/drawio/2024-01/drawing-5-1706149836.png" alt=""/></div>

### Fields

**At Grade** - the grade the student is in for that specific term. Student terms can be in the past or made for the future, so the At Grade is different that the student's current grade level.

**Student Sequence** - the order of the terms the student takes the term.

**Term GPA** - the calculated GPA for all the courses taken in that term. The term GPA appears on the student's transcript.

**Term Weighted GPA** - the calculated weighted GPA for all the courses taken in that term. The term GPA appears on the student's transcript.

*<span style="color: rgb(224, 62, 45);">JAN 2024 the following fields are not created:</span>*

<span style="background-color: rgb(251, 238, 184);">**Alternate Term GPA** - the calculated alternate GPA for all the courses taken in that term. The alternate term GPA appears on the student's transcript.</span>

<span style="background-color: rgb(251, 238, 184);">**Alternate Term Weighted GPA** - the calculated alternate weighted GPA for all the courses taken in that term. The alternate term GPA appears on the student's transcript.</span>

**Student Program** - the program/plan the student was assigned during that term.

**Units attempted** - the number of units of the courses enrolled in during the term.

**Units earned** - total units the student earned during the term, summed from the courses the student did not drop or fail.

**Name** - concatenate of Student ID and school term name

**Other School** - if the term represents coursed taken at a different school, and these courses are recorded in the SIS for the purpose of the Transcript, then the user enters the Other School

*<span style="color: rgb(224, 62, 45);">JAN 2024 the following field is not created:</span>*

<span style="background-color: rgb(251, 238, 184);">**Student Term Status** - update the status of the student term based on the school term status.</span>

### Student Terms Automation

PEMS automatically creates student term records for the student up to the <span style="text-decoration: underline;">end of the student grade\_span. </span> The student's grade span is determined by the student' s grade level.

When the student is completes registration, the student term records are created for the student for the <span style="text-decoration: underline;">entire grade span.</span>

However, if a student enters in the middle of a grade span, student term records are *<span style="text-decoration: underline;">not automatically created for the past terms </span>*of the grade span.

All enrollments are child records to the student term record, and so no enrollments can be made unless there are first student term records created.

### Student Term GPA Logic 

See [6. Transcript GPA Calculation](https://bsa.lynops.com/books/personal-education-management-system/page/6-transcript-gpa-calculation)

<table border="1" id="bkmrk-there-are-four-gpa-f" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.8765%;"></col></colgroup><tbody><tr><td>There are four GPA fields to calculate in the student term record. Calculate them all the same, recalculate when ever there is a change in the fields.</td></tr><tr><td>If enrollment status is complete and if there is a change to any enrollment grade point field, then:</td></tr><tr><td>For each enrollment, multiply the Grade Points field times the Units Earned field</td></tr><tr><td>Sum all the values above</td></tr><tr><td>Sum all the units earned field from associated enrollments.</td></tr><tr><td>Divide: (Grade Points x Units Earned ) / Units Earned</td></tr><tr><td>Enter into the respective GPA field in the student term record.</td></tr></tbody></table>

### Action Items JAN 2024

<p class="callout danger">1-MVP | TRANSCRIPT | Add Student term Status, Alternate GPA and Alternate Weighted GPA fields to student term table.</p>

<p class="callout danger">1-MVP | TRANSCRIPT | Calculate all GPAs for the Transcript using the GPA Logic. Update student terms status based on school term status.</p>

# Student Plan Table

**<span style="color: rgb(0, 0, 0);">[Students Table](https://cs.studianova.org/admin/students)</span>**

<span style="color: #e03e2d;">*Note: student <span style="text-decoration: underline;">plan </span>and student <span style="text-decoration: underline;">program </span>are used to mean the exact same table*</span>

The student plan table keeps track of what plans have been assigned to the student over time. Student Plan records specify the program of study and keep track of the start date, end date, and status of the plan.

The “Student Program” table keeps the history of what program(plan) the student was completing over the years of study. Every time the current program field in the student record is changed, a record is created in the “student program” table. The “student program” record stores the program(plan) name as well as the planned start and end dates of the program. The student program table acts like a log file of changes made to the ”current program” field in the student record.

<span style="font-weight: 400;">The </span>**student programs** <span style="font-weight: 400;">table also stores the start and end dates of the plan. For example, if the student was assigned the plan half-way through the term, the exact date the student was assigned the plan is recorded. </span>

### Data Relationships

<div drawio-diagram="94"><img src="https://bsa.lynops.com/uploads/images/drawio/2024-01/drawing-5-1706154703.png" alt=""/></div>

### Fields

**Program Status**

*Active Plans -* There can only be one active student plan at any given time.

*Suspended Plans* - Students may change plans before they are completed, in this case the plan is suspended and a new student plan record created/activated.

*Completed Plans* - when a student completes all the classed under that plan, the plan is marked completed.

*Future* - Student plan records may be made for future grade spans. If the student has a future plan already created, then the student will be auto-enrolled in the next set of classes without any need for user involvement.

**Units Required -** The student plan is associated to the plan record, the plan record requires a total number of units to complete the plan.

**Units Completed -** The units from the related completed enrollment records are summed to determine how many units have been completed under this plan.

**Adherence -** As the student is completing the enrollment records on schedule, then the student is in compliance with the plan. If the student is not completing the enrollment records, then the plan adherence is "below plan." If the student is completing the plan, and adding extra classes, or is completing the plan early, the Adherence is above "plan."

**Plan GPA** - the running GPA of all the enrollments linked to the student plan, updated as the students earn grades.

**Program start date** - the date the plan was started, calculated from the date of the first enrollment record was activated.

**Program end date** - the date the program was completed, calculated from the last enrollment record or when the status was changed by the administrator.

**Program start term** - a link to the school term in which the student began the plan.

### Action Items JAN 2024

<p class="callout danger">1-MVP | TRANSCRIPT| In the Student Plan record, deprecate Units Attempted</p>

<p class="callout danger">6-NV | ASSESSMENT | Calculate Units completed under the student plan when enrollments are complete, update units completed in the student plan record.</p>

<p class="callout danger">6-NV |ASSESSMENT |Calculate adherence by comparing the units completed in the enrollments to the student plan's template records to find if the student is staying on the plan. </p>

<p class="callout danger">6-NV | ASSESSMENT | Calculate the plan GPA from the completed student term data. NOTE, this GPA does not appear of the student transcript and is for decision making on which plan to assign in the future. There is no need to track 'other' GPAs in the student plan record in the MVP.</p>

<p class="callout danger">6-NV | ASSESSMENT | Calculate the student plan start and end dates from the status of the enrollment records.</p>

# Enrollments Table

**[Enrollments](https://cs.studianova.org/admin/enrollments)**

### Relevant Topics

{{@90#bkmrk-this-is-the-list-of-}}

{{@90#bkmrk-curriculum-generall-}}

{{@90#bkmrk-the-term-course-is-n}}

{{@90#bkmrk-in-summary%2C-enrollme}}

{{@90#bkmrk-a-student-term-recor}}

{{@185#bkmrk-moodle-course-id-is-}}

{{@185#bkmrk-sections-are-used-to}}

### Enrollments Table Overview

The enrollment record is key to tracking the courses a student takes, when they take them, and what grade the received in the course. The enrollment record is created and managed in the SIS, but controls all the information needed to automate the enrollment of the student in the correct Moodle course. The enrollment record also contains the correct information to be displayed on the student transcripts.

### Data Relationships

<div drawio-diagram="106"><img src="https://bsa.lynops.com/uploads/images/drawio/2024-01/drawing-5-1706235569.png" alt=""/></div>

Enrollment records are created by mapping information from the template records associated with the assigned plan. They are not linked to the template records. Enrollment records are also linked directly to the <span style="text-decoration: underline;">student plan</span> record. The student plan records functions as a historical log of what plan the student took and when the enrollment was taken.

*<span style="color: rgb(224, 62, 45);">Note: Jan 2024 the enrollment is incorrectly linked to the Program plan record, not the student plan record.</span>*

### Fields

**Status** - the status of the student in the class. Active is enrolled in Moodle Course and working towards completion, completed is the end of the term after the grade has been entered from Moodle, planned is an enrollment record that was made for a future enrollment, suspended if the student was suspended from school, dropped if the student dropped the enrollment after starting the class. Plan change drop if the reason for the drop was an assignment of a new plan.

- "Not selected" option is no longer required and should be deprecated.

**Letter Grade** - The letter grade is selected from a pick list created and updated from the [Marks System](https://bsa.lynops.com/books/personal-education-management-system/page/marks-system "Marks System") table - 'Letter Mark' field' in the schools module. There is no need to link to the Marks System table, this field just uses a list from the defined records.

**Numeric Grade** - If letter grades are not used, then numeric grades can be typed in. Numeric grades do not need to use the mark system table. <span style="background-color: rgb(251, 238, 184);">Change the name of this field to Grade Points.</span>

<span style="background-color: rgb(251, 238, 184);">**Weighted Points** - entered from the Marks System table according to <span style="background-color: rgb(251, 238, 184);">Marking Rules</span> described below.</span>

<span style="background-color: rgb(251, 238, 184);">**Alternate Grade Points** - entered from the Marks System table according to <span style="background-color: rgb(251, 238, 184);">Marking Rules</span> described below.</span>

<span style="background-color: rgb(251, 238, 184);">**Alternate Weighted Grade Points** - entered from the Marks System table according to <span style="background-color: rgb(251, 238, 184);">Marking Rules</span> described below.</span>

**Grade Import** - the raw grade imported from Moodle.

**At grade** - the grade level the student is at when taking the course.

**Units Attempted** - the number of units this course will award. The class record has the number of attempted units for this enrollment.

**Units Earned** - the number of units earned. A passing grade is required for all units.

**Actual Start Date** - sometimes students start coursed mid-term. The actual start date is the day the student was granted access in Moodle to the course.

### Grading Workflow Summary

To mark the enrollment complete, the user fetches the grade from the associated Moodle course, then sets the status to complete in the enrollment status field. The student's dis-enrollment from the Moodle course is then triggered.

All completed enrollment records appear on the student's transcript.

### Create Enrollment Records Workflow Summary

When a student is assigned a plan, the enrollment records are created from information in the template records associated to the assigned plan. By creating all future as well as current term enrollments, the student can be auto-enrolled in Moodle courses without further user action. The user selects the student’s plan, and then the enrollment records are created.

This approach allows the user to easily see what classes the student *has left* to take in order to complete the program by looking at all incomplete enrollments. Student progress towards graduation is very difficult to assess with most traditional Student Information Systems.

For the current term, the students are auto-enrolled in Moodle. Students are not enrolled in Moodle courses for any future terms.

Enrollment records can only be created if there are student term records and a student plan assigned. To create the enrollments, a plan has to be selected for the student.

### Enrollment Grade Points Marking Rules

<table border="1" id="bkmrk-all-the-grade-points" style="border-collapse: collapse; width: 100%; height: 262.766px;"><colgroup><col style="width: 99.8765%;"></col></colgroup><tbody><tr style="height: 46.5938px;"><td style="height: 46.5938px;">All the grade points fields are entered based on the fields corresponding to the letter grade field in the Marking System table.</td></tr><tr style="height: 63.3906px;"><td style="height: 63.3906px;">The transcript tag on the curriculum related to the enrollment record indicates whether the GPA can be increased (weighted). If it can be increased, then the weighted GPAs are from the Marks System Table are entered into the weighted points fields.</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;">If the curriculum does not specify to weight the grade points, then the unweighted grade points from the Marking System table are entered into the enrollment weighted fields.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">The class record controls whether the GPA should be excluded from the standard calculation or the alternate calculation.</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;">If the class is to be excluded, then the grade points are zeroed. There are two types of exclusions, one for the standard and one for the alternate GPA. Both exclusions must be selected to exclude from both types of calculations.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;"><span style="color: rgb(35, 111, 161);">To complete the logic - a student term level exclusion will need to be applied, where the term is excluded base on at\_grade. This has not been specified yet, but will be added after above logic is implemented and vetted.</span></td></tr></tbody></table>

### Action Items Jan 2024

<p class="callout danger">1-MVP | TRANSCRIPT | Create the fields: Weighted Grade Points, Alternate Grade Points, and Alternate Weighted Grade Points in the enrollment record. Change the name of numerical grade field to Grade Point. This will simplify creating the transcript. Change link in enrollment record to student plan, not programs of study.</p>

<p class="callout danger">1-MVP | TRANSCRIPT | Build Marks Rules to input all GPAs based on letter grade.</p>

<p class="callout danger">4-MVP | ADVANCEMENT | In the enrollment table - student plan field is linked to "Program of Study" This field should link to the <span style="text-decoration: underline;">**student plan table.** </span>This issue does not affect transcript.</p>

<p class="callout danger">4-MVP | ADVANCEMENT | Status field - remove the option " not selected " (low priority clean up)</p>

<p class="callout danger">2-MVP | HOMEROOM | Deprecate link to Section - this has been replaced with SIS group (clean up)</p>

<p class="callout danger">4-MVP | ADVANCEMENT | Deprecate Curriculum Option, Class Option, Preference and Set (clean up)</p>

<p class="callout danger">2-MVP | HOMEROOM | Add association to SIS Group table, one group per enrollment, groups can be linked to multiple enrollments</p>

# Business Rules for Student Terms and Enrollments

### Launching the Enrollment Process

A new student record is made in the Student Table when the enrollment form has been approved. The status of all new student records in the SIS student table is "planned." The start\_date field is the student's first day of class. The start\_date may change after a new student record has been created as students sometimes start earlier or later than originally planned. However, once the student status has been changed to "active", the start date may no longer change. Also, if the start date has passed, it will be assumed that it will not longer change.

### Creating a Set of Student Term Records

A **start date** and the student's **start grade level** is all that is required to make the student term records. The grade level determines the student's grade span. Student term records are created for the student through the end of the grade\_span. Student term records are created with new student record is created and these two essential fields are not empty.

If a new student record is made that does not have a start date or does not have a current grade level, the student records will not be made automatically. For this reason, the UI provides the user a manual option to create student term records.

### Starting Mid-Grade Span

Many students will start school in the middle of a term but also in the middle of a grade span. In this case, student term records are only made for current and future terms, they are not made for past terms in the grade span that a student was not in attendance.

### Selecting a Plan

When the student status is either "planned" or "active", the student's program (plan) can be selected. Making the decision on what plan to assign to the student in is an important process, it involves discussions with the student and family as well as interpretation of assessment tests that may be taken prior to first day of school, or in the first few days of active school participation.

Enrollment Records are created for the duration of the plan, not just fo the next term. So if a student is assigned plan that spans two academic years, the enrollment records are planned out for the next two years, and there are no decisions to be made on classes over this time period.

Based on the enrollment records, the PEMS integration with Moodle will auto-enroll the student in the Moodle courses. The student will not be enrolled in Moodle courses until the beginning of the term. Enrollment records in the PEMS are created for the full duration of the plan, however, Moodle course enrollment is only term by term.

### Mid Plan Enrollment

Each plan specifies a starting grade level and a starting term. So a student who joins the school late in the school year may be assigned a plan that has started in the previous term or even the previous year. These students will not complete the full plan as they will start the plan mid-way through. We do not want to create enrollment records for terms the student never attended at the school.

PEMS creates enrollment records according to the template, but skips enrollments that required for past terms. Enrollment records are created only for the current term and future terms of the plan.

### Triggering the Plan

When the student record is created, all the student terms are created until the end of the grade span. Then, when the program plan is selected, the enrollment records are automatically created.

### Changing The Plan Prior to Start Date

Changing the plan prior to start date is straight forward, all the previous plan's enrollment records are deleted and the new plan's enrollment records are created.

### Changing plans very shortly after courses started

A student may start the plan and decide the courses are not at all appropriate. A new plan must be selected. In a user-determined time frame, like less than two weeks for example. The plan may be changed, causing all related enrollment records to be deleted, and all corresponding Moodle Course enrollments to be deleted, and starting over with a new plan, new enrollment records and new Moodle course enrollments. None of the student's previous work will be saved or credit given. The user interface should require a reason for a plan being changed so soon after the student started the plan.

*note: whenever there is a plan change, the plan change begin and end dates (how long the student was enrolled in that plan) is stored so that plan history may be viewed.*

### Changing plans after courses started and some completed

Once the courses have been started, changing plans is more complicated since the the student will have completed some of the plan's courses. but not others. So enrollment records that have not yet started will be deleted, but enrollment records the student has already completed will not be deleted.

# Business Rules for Managing Enrollments

### Dis-enrollment

When a student is to be dis-enrolled, the administrator will trigger the action by changing the student status field in the student record.

The date of dis-enrollment will be entered in the student record.

All enrollment records will be marked complete, and the graded fetched from Moodle. Students will be dropped from any Moodle courses.

Student access will be suspended in Key cloak.

The current transcript will be created and emailed to the email of the guardian on record.

### End of Term Grading

The admin triggers fetching the grades from Moodle. The numerical values are updated in the enrollment numerical grade field.

Enrollments are linked to groups, which are linked to the teacher of record. Provide the teacher of record a table of all newly graded enrollments from Moodle. In this panel, teacher may change the grades. If the student has a poor grade, the teacher may choose the option to continue the enrollment, see below.

After reviewing all enrollments, the teacher must submit all grades, after which the teacher may no longer change them. Admins can change grades at any time during the students participate in the school.

When the grades have been submitted, and the student's enrollment is marked completed, the Moodle courses enrollment is also updated.

If all the students enrollments are marked completed, PEMS changes the status of the next term's enrollment records and to current and triggers the enrollment in the Moodle courses.

If any of the student's enrollment records were marked continued, then the administrator must manually change the status in the next term's enrollment records.

### Continue Enrollment Workflow

Sometimes students do not complete all the assignments in a course, and so it makes no sense to promote them to the next course. PEMS provides teachers the ability to continue enrollment, awarding an appropriate grade but not all the units in the linked class record. If the the teacher select to continue the enrollment, PEMS will not dis enroll the student from the Moodle course.

### Promoting Students

After grading is completed for the last term of the school year, all students who have completed a user-defined percent of the attempted units for the year will be automatically promoted to the next grade level.

Student who did not complete all the attempted units, because they dropped classed or revived a failing grade will not be automatically promoted.

The admin will be provided a means to review these students before choosing to promote the student to the next grade level. It may be a good idea to provide a user-defined field for the minimum percent of units completed to be automatically promoted.

### Promotion to New Grade Pan

When a student's current grade level changes, then the student may be entering a new grade span. If a student is entering a new grade span, then new student term records will be made.

### Completing a plan

If a student is entering a new grade span, a new plan will need to be assigned. Also, when a student completes a plan withing a grade span, the a new plan will need to be assigned. After grade promotion and the creation of all requisite student term records, provide the administrator the ability to assign a new plan.

# Assessment Results Table

### Assessment Results Overview

The administrator defines what the school will assess for in the Assessment Module, the assessment results table is in the Student module since an assessment result is the student's record on the assessment.

Every time the student takes and assessment, an assessment result record is entered and related to the student. Assessment codes allow the administrator to string together student assessment results. Based on the code, the assessment result record can be analyzed to better understand how a student is performing over time.

This table is fully described in [Assessment Result Calcuations.](https://bsa.lynops.com/books/personal-education-management-system/page/assessment-result-calcuations "Assessment Result Calcuations")

# Student Logins Table

**[Student Login](https://cs.studianova.org/admin/studentlogin)**

The student logins table stores student login information for Keycloak and other technologies that the school provides their students.

Create a new record, enter information, then use the GENERATE PASSWORD button to create the login. Workflow is triggered to create the student in KeyCloak and Moodle.

### Data Relationships

<div drawio-diagram="98"><img src="https://bsa.lynops.com/uploads/images/drawio/2024-01/drawing-5-1706219661.png" alt=""/></div>

Only one student login record is created per student.

### Fields

**User name** - concatenate the first and last name of the student.

**Password** - administrator sets the password when creating the record.

**SSO True/False** - If true then on save KeyCloaks and Moodle users will be created.

**Is IXL True/False** - If true an IXL login with same user/name password will be create - PLEASE UPDATE NOT SURE

**Is GrokAcademy** True/False - If true a Grok login with same user/name password will be create - PLEASE UPDATE NOT SURE

**Active True/False** - If true then the account will be managed by Key Cloak PLEASE UPDATE NOT SURE

**website** - the website that the student account information will be shared with. Note: This logic may be updated based on the implementation of the homeroom module.

**emailid** - PLEASE UPDATE THIS FIELD DESCRIPTION

Class True/False - If true... PLEASE UPDATE THIS FIELD

### Action Items Jan 2024

<p class="callout danger">2-MVP | HOMEROOM| Dharm to Complete documentation of this table, VG does not completely understand it.</p>

<p class="callout danger">2-MVP | HOMEROOM| Evaluate login creation logic, in particular the website field, given the new homeroom module.</p>

# Student Term Planner UI

[Student Term Planner UI](https://cs.studianova.org/admin/studenttermplanner)

The Student term planner UI was created to help the administrator review the terms the student attends the school and to manually update student terms as needed.

The Student Term Planner UI is a two-level nested table with the student on the primary row. Using the plus button PEMS add a related student term record.

The following Student information is mapped to the student term record: Student Name.

Student Program is not mapped because the different student terms have potentially different programs

When the user selects the school term, PEMS concatenated the name of the student term name field, so the student term name is not directly entered by the user.

# Student Programs UI

**[Student Planner UI](https://cs.studianova.org/admin/studentplanner)**

The student programs UI is used to assign students a plan. The UI is a 2-level nested table with the student at the primary record and the student plans shown below the student.

A plus button is provided to create a related record and student name is mapped from the student record to the student plan record.

Filters are provides to sort by School and grade span.

### Action Items JAN 2024

<p class="callout danger">4-MVP | ADVANCEMENT | Add more filters to the header, filter by homeroom once that module is built.</p>

# Student Enrollment UI

**[Student Enrollment UI](https://cs.studianova.org/admin/studentenrollment)**

The Student Enrollment UI is used to create enrollment records for students and to trigger student enrollment in the Moodle Courses.

The student's name must be selected from the filter at the top, this was implemented to reduce how much data is loaded in the view.

The view is a two-level nested table. The primary row is a student term. When the student is selected in the filter, the associated student term records are loaded.

The secondary row is the enrollment record. When the user clicks the plus sign, a pop-up window appears and the user may select from a set of template records.

As of JAN 2023, all template records are displayed. In this view, template records should only be displayed if they are linked to the same plan as the student.

If the user clicks the button next to the template, then an enrollment record is created and the information from the template is mapped to the enrollment record.

# Transcript UI

**[Transcript View](https://cs.studianova.org/admin/transcript/view)**

### Relevant Concepts

[Student Records (SIS) Function](https://bsa.lynops.com/books/personal-education-management-system/page/student-records-sis-function "Student Records (SIS) Function") provides an overview of what a typical transcript requires. This is the most important aspect of the SIS.

{{@90#bkmrk-a-transcript-is-a-re}}

{{@90#bkmrk-a-student-term-recor}}

{{@90#bkmrk-this-is-the-list-of-}}

{{@90#bkmrk-curriculum-generall-}}

{{@90#bkmrk-in-summary%2C-enrollme}}

{{@90#bkmrk-subject-requirements-1}}

{{@90#bkmrk-not-only-do-the-regu}}

{{@90#bkmrk-the-grade-point-aver}}

{{@90#bkmrk-if-students-take-mor}}

### Data Relationships

<div drawio-diagram="108"><img src="https://bsa.lynops.com/uploads/images/drawio/2024-01/drawing-5-1706236387.png" alt=""/></div>

### Show Enrollments

The transcript shows the student's enrollment records, and the grades in each class. The enrollment records should be organized by student term. The transcript should display all the enrollments associated to the student term.

The enrollment record is linked to a curriculum record. The curriculum record has multiple transcript tags defined. Display the transcript tags next to the enrollment record.

### Show Progress to Plan

The transcript must also show progress towards completing [subject requirements](https://bsa.lynops.com/Subject%20and%20Subject%20Requirements%20Tables). The student record is associated with only one Program of Study record (plan) at any given time, the active/current plan. That plan is linked to a set of subject requirements.

The subject requirements are always determined from the active plan, the active plan is the one that is linked to the student record. Students are linked to multiple student plan records, but student plan records are not used in the transcript view.

Each enrollment is linked to one class, which is linked to one subject. Therefore each enrollment has a known subject.

The student is linked to one plan, which has a set of subject requirements. The subject requirements are displayed in the transcript using the 'transcript name' in the subject requirement record. (which is really the same as the linked subject).

The following method is used to find the units earned towards a subject requirement:

##### \*For each subject requirement record, Sum the Units Earned field from the Enrollments that are linked to a class that is linked to the same subject as the subject requirement record.

The following information should be displayed on the bottom of the transcript.

<table border="1" id="bkmrk-list-subject-require" style="border-collapse: collapse; width: 100%; height: 135.375px;"><colgroup><col style="width: 28.0593%;"></col><col style="width: 27.0749%;"></col><col style="width: 24.3466%;"></col><col style="width: 20.5192%;"></col></colgroup><tbody><tr style="height: 63.3906px;"><td style="height: 63.3906px;">**List subject requirements for student's current plan\***</td><td style="height: 63.3906px;">**Required**</td><td style="height: 63.3906px;">**Earned**</td><td style="height: 63.3906px;">**To Go**</td></tr><tr style="height: 71.9844px;"><td style="height: 71.9844px;">[Subject Requirement ](https://cs.studianova.org/admin/subjectrequirement): Transcript Name</td><td style="height: 71.9844px;">[Subject Requirement ](https://cs.studianova.org/admin/subjectrequirement): Units required</td><td style="height: 71.9844px;">\*sum units earned for [enrollments ](https://cs.studianova.org/admin/enrollments)with same subject</td><td style="height: 71.9844px;">Required - Earned, use zero if negative number</td></tr></tbody></table>

*\*The current plan is linked in the student record. This field should link to a school 'program of study' not the student's own plan log. <span style="color: rgb(224, 62, 45);">As of 21 FEB 2024, there is no link at all in the field, this is only a text field. <span style="color: rgb(0, 0, 0);">Alternatively, we can choose to select a current plan from the student plan log.</span></span>*

[![image.png](https://bsa.lynops.com/uploads/images/gallery/2024-02/scaled-1680-/ly5image.png)](https://bsa.lynops.com/uploads/images/gallery/2024-02/ly5image.png)

### GPA Calculations Reference Information

<table border="1" id="bkmrk-view-%C2%A0googlesheet-ex" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.8765%;"></col></colgroup><tbody><tr><td>View [GoogleSheet Example Calculations](https://docs.google.com/spreadsheets/d/1mtVqaVWClRSZG9bTI8TkSPrs_d2aHzWQ87NbP9RRWks/edit?usp=sharing) of GPA</td></tr><tr><td>The [6. Transcript GPA Calculation ](https://bsa.lynops.com/books/personal-education-management-system/page/6-transcript-gpa-calculation) page describes detail on how to make GPA calculations.</td></tr><tr><td>The [Enrollments Table](https://bsa.lynops.com/books/personal-education-management-system/page/enrollments-table "Enrollments Table") describes the rules to update all the various Grade point fields in the enrollment record. This must be completed in order to run the transcript.</td></tr><tr><td>The [Student Terms Table](https://bsa.lynops.com/books/personal-education-management-system/page/student-terms-table "Student Terms Table") describes the rules to calculate GPA fields for the student term record. This must be completed in order to run the transcript.</td></tr><tr><td>The [Transcript UI ](https://bsa.lynops.com/books/personal-education-management-system/page/transcript-ui "Transcript UI")describes how to display Student Terms table GPA calculations as well as the student table GPA calculations on the Transcript.</td></tr><tr><td>The List of transcript tags to be displayed on the transcript is described in [Programs Table](https://bsa.lynops.com/books/personal-education-management-system/page/programs-table "Programs Table").</td></tr><tr><td>The [Marks System](https://bsa.lynops.com/books/personal-education-management-system/page/marks-system "Marks System") table describes how this table is used to allow users to customize the GPA calculations.</td></tr></tbody></table>

### Action Items JAN 2024

<p class="callout danger">1-MVP | TRANSCRIPT | Victoria to complete data set for plans, link plan to student, create a subject requirement under every plan, and complete Marx matrix so that GPAs may be calculated. - DONE</p>

<p class="callout danger">1-MVP | TRANSCRIPT | Complete all other transcript actions in all other pages of the document - see action item summary for complete list.</p>

<p class="callout danger">1-MVP | TRANSCRIPT | Verify the method of calculating student progress is as described.</p>

<p class="callout danger">1-MVP | TRANSCRIPT| Complete the transcript page.</p>

<p class="callout danger">1-MVP | TRANSCRIPT| Provide a means to export to pdf.</p>

<p class="callout danger">1-MVP | TRANSCRIPT| Add filters to top of transcript to filter for only completed student terms, or include all terms. </p>

### FEEDBACK 11 FEB 2024

<p class="callout danger">[Google Sheet Feedback](https://docs.google.com/presentation/d/1f7o0i_BrwRiJxqoUwv4Crv2w-Hq4LyeL1FYaR0xnbjQ/edit?usp=sharing)</p>