update api and add more features
This commit is contained in:
@@ -0,0 +1,509 @@
|
||||
# Student Promotion and Enrollment Management Plan
|
||||
|
||||
## 1. Core Rule
|
||||
|
||||
A student who passes the current level should not be automatically placed into the next level.
|
||||
|
||||
The student should first be marked as:
|
||||
|
||||
**Eligible for Promotion**
|
||||
|
||||
After that, the parent or guardian must complete enrollment for the promoted level.
|
||||
|
||||
Once the parent completes enrollment, the student becomes:
|
||||
|
||||
**Promoted and Enrolled**
|
||||
|
||||
No separate school approval is required.
|
||||
|
||||
## 2. Promotion Principle
|
||||
|
||||
Promotion and enrollment are separate steps.
|
||||
|
||||
### Promotion
|
||||
|
||||
Promotion confirms that the student passed the current level and qualifies for the next level.
|
||||
|
||||
### Enrollment
|
||||
|
||||
Enrollment confirms that the parent or guardian wants the student to continue at the school in the promoted level for the next school year.
|
||||
|
||||
Once enrollment is completed by the parent, the student should be officially assigned to the new promoted level.
|
||||
|
||||
## 3. Promotion Statuses
|
||||
|
||||
Recommended statuses:
|
||||
|
||||
- Not Reviewed
|
||||
- Eligible for Promotion
|
||||
- Awaiting Parent Enrollment
|
||||
- Enrollment Started
|
||||
- Promoted and Enrolled
|
||||
- Conditional Promotion
|
||||
- Repeated Level
|
||||
- On Hold
|
||||
- Withdrawn
|
||||
- Graduated
|
||||
- Not Enrolled for Next Year
|
||||
|
||||
## 4. Status Definitions
|
||||
|
||||
### Not Reviewed
|
||||
|
||||
The student has not yet been evaluated for promotion.
|
||||
|
||||
### Eligible for Promotion
|
||||
|
||||
The student passed the current level and qualifies for the next level, but the parent has not started enrollment yet.
|
||||
|
||||
### Awaiting Parent Enrollment
|
||||
|
||||
The student is eligible for the next level, and the system is waiting for the parent to complete enrollment.
|
||||
|
||||
### Enrollment Started
|
||||
|
||||
The parent has started the enrollment process but has not completed all required steps.
|
||||
|
||||
### Promoted and Enrolled
|
||||
|
||||
The parent completed enrollment for the promoted level. The student is officially placed into the next level for the new school year.
|
||||
|
||||
### Conditional Promotion
|
||||
|
||||
The student has pending academic or administrative requirements before promotion eligibility can be finalized.
|
||||
|
||||
Examples:
|
||||
|
||||
- Makeup exam required
|
||||
- Missing final grade
|
||||
- Attendance review
|
||||
- Academic condition pending
|
||||
|
||||
### Repeated Level
|
||||
|
||||
The student did not meet the passing requirements and must repeat the same level.
|
||||
|
||||
### On Hold
|
||||
|
||||
The student cannot continue through the promotion process because of an unresolved issue.
|
||||
|
||||
Examples:
|
||||
|
||||
- Missing academic result
|
||||
- Enrollment form incomplete
|
||||
- Financial hold, if used by school policy
|
||||
- Required documents missing
|
||||
|
||||
### Withdrawn
|
||||
|
||||
The student is no longer continuing at the school.
|
||||
|
||||
### Graduated
|
||||
|
||||
The student completed the final level and does not move to another school level.
|
||||
|
||||
### Not Enrolled for Next Year
|
||||
|
||||
The student passed and was eligible for promotion, but the parent did not complete enrollment before the deadline.
|
||||
|
||||
This should not be treated as failure. It means the student passed but did not continue enrollment.
|
||||
|
||||
## 5. Promotion Eligibility Criteria
|
||||
|
||||
A student may become eligible for promotion when the school confirms that the student passed the current level.
|
||||
|
||||
Eligibility may be based on:
|
||||
|
||||
- Final academic result
|
||||
- Required subject completion
|
||||
- Final average
|
||||
- Attendance requirement, if applicable
|
||||
- Makeup exam result, if applicable
|
||||
- Level completion status
|
||||
|
||||
The school should define these rules clearly per level or program.
|
||||
|
||||
## 6. Updated Workflow
|
||||
|
||||
### Step 1: Academic Result Finalized
|
||||
|
||||
Teachers or academic staff submit the student’s final result for the current level.
|
||||
|
||||
The system records:
|
||||
|
||||
- Final average
|
||||
- Passed or failed result
|
||||
- Attendance result, if required
|
||||
- Current level completion status
|
||||
- Teacher comments, if needed
|
||||
|
||||
### Step 2: Promotion Eligibility Check
|
||||
|
||||
The system checks whether the student passed the current level.
|
||||
|
||||
If the student passed, the system marks the student as:
|
||||
|
||||
**Eligible for Promotion**
|
||||
|
||||
or
|
||||
|
||||
**Awaiting Parent Enrollment**
|
||||
|
||||
The student is not yet moved into the next level.
|
||||
|
||||
### Step 3: Parent Enrollment Required
|
||||
|
||||
The system notifies the parent or guardian that the student is eligible for the next level and must complete enrollment.
|
||||
|
||||
The notification should include:
|
||||
|
||||
- Student name
|
||||
- Current level completed
|
||||
- Promoted level
|
||||
- Enrollment deadline
|
||||
- Required documents, if any
|
||||
- Required payment or deposit, if applicable
|
||||
- Instructions to complete enrollment
|
||||
|
||||
### Step 4: Parent Starts Enrollment
|
||||
|
||||
When the parent begins the enrollment process, the student status becomes:
|
||||
|
||||
**Enrollment Started**
|
||||
|
||||
The enrollment process may include:
|
||||
|
||||
- Confirming student information
|
||||
- Confirming parent or guardian information
|
||||
- Confirming the promoted level
|
||||
- Uploading required documents
|
||||
- Accepting school policies
|
||||
- Paying registration fee or deposit, if applicable
|
||||
- Submitting the enrollment form
|
||||
|
||||
### Step 5: Parent Completes Enrollment
|
||||
|
||||
Once the parent submits all required enrollment information and completes required payment, if applicable, the enrollment is considered complete.
|
||||
|
||||
The student status becomes:
|
||||
|
||||
**Promoted and Enrolled**
|
||||
|
||||
No additional school approval is needed.
|
||||
|
||||
### Step 6: New School-Year Record Created
|
||||
|
||||
After parent enrollment is completed, the system creates the student’s new school-year enrollment record.
|
||||
|
||||
The new record should include:
|
||||
|
||||
- Student ID
|
||||
- Parent ID
|
||||
- New school year
|
||||
- Promoted level
|
||||
- Enrollment status
|
||||
- Enrollment completion date
|
||||
- Source promotion record
|
||||
|
||||
## 7. Decision Logic
|
||||
|
||||
```text
|
||||
IF student did not pass current level:
|
||||
promotion_status = repeated_level
|
||||
|
||||
ELSE IF student passed current level AND parent has not started enrollment:
|
||||
promotion_status = awaiting_parent_enrollment
|
||||
|
||||
ELSE IF student passed current level AND parent started enrollment BUT enrollment incomplete:
|
||||
promotion_status = enrollment_started
|
||||
|
||||
ELSE IF student passed current level AND parent completed enrollment:
|
||||
promotion_status = promoted_and_enrolled
|
||||
|
||||
ELSE:
|
||||
promotion_status = on_hold
|
||||
```
|
||||
|
||||
## 8. Enrollment Completion Rule
|
||||
|
||||
Enrollment should be considered complete when all required parent-side actions are finished.
|
||||
|
||||
Required actions may include:
|
||||
|
||||
- Enrollment form submitted
|
||||
- Required student information confirmed
|
||||
- Required parent information confirmed
|
||||
- Required documents uploaded
|
||||
- Required agreement accepted
|
||||
- Required registration fee or deposit paid, if applicable
|
||||
|
||||
Once these are complete, the system should automatically finalize the promotion.
|
||||
|
||||
## 9. Record Update Rule
|
||||
|
||||
The system should not overwrite the student’s current-level record.
|
||||
|
||||
Instead, it should:
|
||||
|
||||
1. Keep the current school-year academic record unchanged.
|
||||
2. Create a promotion eligibility record.
|
||||
3. Wait for parent enrollment.
|
||||
4. Create a new enrollment record for the next school year after parent enrollment is complete.
|
||||
5. Assign the student to the promoted level only in the new school-year record.
|
||||
|
||||
## 10. Level Mapping
|
||||
|
||||
The school should maintain a clear level progression map.
|
||||
|
||||
Example:
|
||||
|
||||
| Current Level | Next Level |
|
||||
|---|---|
|
||||
| KG1 | KG2 |
|
||||
| KG2 | Grade 1 |
|
||||
| Grade 1 | Grade 2 |
|
||||
| Grade 2 | Grade 3 |
|
||||
| Grade 3 | Grade 4 |
|
||||
| Grade 4 | Grade 5 |
|
||||
| Grade 5 | Grade 6 |
|
||||
| Grade 6 | Grade 7 |
|
||||
| Grade 7 | Grade 8 |
|
||||
| Grade 8 | Grade 9 |
|
||||
| Grade 9 | Youth |
|
||||
| Youth | Graduated |
|
||||
|
||||
The system should store this mapping in configuration or a dedicated table, not hard-code it inside controller logic.
|
||||
|
||||
## 11. Recommended Data Model Updates
|
||||
|
||||
### student_promotion_records
|
||||
|
||||
Recommended fields:
|
||||
|
||||
- promotion_id
|
||||
- student_id
|
||||
- parent_id
|
||||
- current_school_year
|
||||
- next_school_year
|
||||
- current_level_id
|
||||
- promoted_level_id
|
||||
- promotion_status
|
||||
- passed_current_level
|
||||
- enrollment_required
|
||||
- enrollment_status
|
||||
- enrollment_id
|
||||
- parent_notified_at
|
||||
- enrollment_deadline
|
||||
- enrollment_completed_at
|
||||
- promotion_finalized_at
|
||||
- created_at
|
||||
- updated_at
|
||||
|
||||
### enrollment_applications
|
||||
|
||||
Recommended fields:
|
||||
|
||||
- enrollment_id
|
||||
- student_id
|
||||
- parent_id
|
||||
- school_year
|
||||
- requested_level_id
|
||||
- source_promotion_id
|
||||
- application_status
|
||||
- submitted_at
|
||||
- completed_at
|
||||
- required_documents_status
|
||||
- payment_status
|
||||
- created_at
|
||||
- updated_at
|
||||
|
||||
### promotion_conditions
|
||||
|
||||
Recommended condition type:
|
||||
|
||||
- parent_enrollment_required
|
||||
|
||||
Example:
|
||||
|
||||
- condition_type: parent_enrollment_required
|
||||
- description: Parent must complete enrollment for the promoted level.
|
||||
- status: pending
|
||||
- deadline: enrollment deadline date
|
||||
|
||||
## 12. Parent Portal Requirements
|
||||
|
||||
The parent portal should show the parent a clear action.
|
||||
|
||||
Example message:
|
||||
|
||||
“Your child has passed the current level and is eligible for promotion to [Promoted Level]. Please complete enrollment for the new school year by [Deadline].”
|
||||
|
||||
The parent should be able to:
|
||||
|
||||
- View the promoted level
|
||||
- Start enrollment
|
||||
- Confirm student information
|
||||
- Upload required documents
|
||||
- Pay required enrollment fee, if applicable
|
||||
- Submit enrollment
|
||||
- View enrollment status
|
||||
|
||||
## 13. Admin Panel Requirements
|
||||
|
||||
The admin panel should allow staff to view:
|
||||
|
||||
- Students eligible for promotion
|
||||
- Students awaiting parent enrollment
|
||||
- Students with enrollment started
|
||||
- Students promoted and enrolled
|
||||
- Students not enrolled for next year
|
||||
- Students repeating the level
|
||||
- Students on hold
|
||||
|
||||
Admin users should also be able to:
|
||||
|
||||
- Set enrollment deadlines
|
||||
- Send reminders
|
||||
- View enrollment completion status
|
||||
- Export pending enrollment lists
|
||||
- View promotion history
|
||||
|
||||
## 14. Reminder Process
|
||||
|
||||
The system should send reminders to parents who have not completed enrollment.
|
||||
|
||||
Suggested reminders:
|
||||
|
||||
- First reminder after student becomes eligible
|
||||
- Second reminder halfway before deadline
|
||||
- Final reminder before deadline
|
||||
- Expiration notice after deadline
|
||||
|
||||
Each reminder should be logged.
|
||||
|
||||
## 15. Deadline Handling
|
||||
|
||||
If the parent does not complete enrollment before the deadline, the student should be marked as:
|
||||
|
||||
**Not Enrolled for Next Year**
|
||||
|
||||
This means:
|
||||
|
||||
- The student passed the current level.
|
||||
- The student was eligible for promotion.
|
||||
- The parent did not complete enrollment.
|
||||
- The student should not be counted as enrolled for the next school year.
|
||||
|
||||
## 16. Reports
|
||||
|
||||
The system should generate reports for:
|
||||
|
||||
- Students eligible for promotion
|
||||
- Students awaiting parent enrollment
|
||||
- Students with enrollment started
|
||||
- Students promoted and enrolled
|
||||
- Students not enrolled for next year
|
||||
- Students repeating the level
|
||||
- Students on hold
|
||||
- Promotion summary by current level
|
||||
- Enrollment completion summary
|
||||
- Parent enrollment pending list
|
||||
|
||||
## 17. Permissions
|
||||
|
||||
Access should be controlled by role.
|
||||
|
||||
### Teacher
|
||||
|
||||
Can submit academic results and promotion recommendations.
|
||||
|
||||
### Academic Coordinator
|
||||
|
||||
Can review academic eligibility and promotion readiness.
|
||||
|
||||
### Parent or Guardian
|
||||
|
||||
Can complete enrollment for the promoted level.
|
||||
|
||||
### Registrar or Admin Staff
|
||||
|
||||
Can view promotion and enrollment status, send reminders, and export reports.
|
||||
|
||||
### Administrator
|
||||
|
||||
Can configure levels, promotion rules, deadlines, and system settings.
|
||||
|
||||
## 18. Audit Trail
|
||||
|
||||
Every promotion and enrollment action should be logged.
|
||||
|
||||
Audit log should track:
|
||||
|
||||
- User who made the action
|
||||
- Date and time
|
||||
- Student affected
|
||||
- Old value
|
||||
- New value
|
||||
- Action type
|
||||
- Notes, if any
|
||||
|
||||
Important audited actions:
|
||||
|
||||
- Academic result submitted
|
||||
- Student marked eligible for promotion
|
||||
- Parent notified
|
||||
- Enrollment started
|
||||
- Enrollment completed
|
||||
- Student marked promoted and enrolled
|
||||
- Student marked not enrolled for next year
|
||||
- Manual status changes
|
||||
|
||||
## 19. Implementation Phases
|
||||
|
||||
### Phase 1: Promotion Rules and Level Mapping
|
||||
|
||||
- Create level progression table.
|
||||
- Create promotion status rules.
|
||||
- Define final levels.
|
||||
- Define repeat-level behavior.
|
||||
|
||||
### Phase 2: Eligibility Engine
|
||||
|
||||
- Build academic eligibility check.
|
||||
- Generate promotion eligibility records.
|
||||
- Mark eligible students as awaiting parent enrollment.
|
||||
|
||||
### Phase 3: Parent Enrollment Flow
|
||||
|
||||
- Build parent enrollment action.
|
||||
- Allow parent to confirm information.
|
||||
- Allow parent to upload documents, if needed.
|
||||
- Allow parent to pay registration fee or deposit, if applicable.
|
||||
- Mark enrollment complete automatically when required steps are done.
|
||||
|
||||
### Phase 4: Record Update
|
||||
|
||||
- Create next-year enrollment record after parent enrollment completion.
|
||||
- Assign promoted level only in the new school-year record.
|
||||
- Preserve current-year academic history.
|
||||
|
||||
### Phase 5: Notifications and Reports
|
||||
|
||||
- Notify parents when students become eligible.
|
||||
- Send reminders before deadline.
|
||||
- Generate pending enrollment reports.
|
||||
- Generate promoted and enrolled reports.
|
||||
|
||||
## 20. Final Rule
|
||||
|
||||
The system should follow this rule:
|
||||
|
||||
**Passed Current Level + Parent Completed Enrollment = Promoted and Enrolled**
|
||||
|
||||
Therefore:
|
||||
|
||||
**Passed ≠ Enrolled**
|
||||
|
||||
**Eligible for Promotion ≠ Promoted and Enrolled**
|
||||
|
||||
**Promoted and Enrolled = Student passed current level + Parent completed enrollment**
|
||||
Reference in New Issue
Block a user