You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This RFC proposes a data model for storing programs and tracking student progress within the Nationaal Watersportdiploma (NWD) system. This model is designed to accommodate the evolving nature of water sports programs and provide a flexible framework for recording student achievements.
Note: This document outlines general concepts, deliberately omitting implementation specifics such as timestamps and audit logs for clarity.
Proposal
Program
A program represents a structured set of modules within a specific discipline, degree, and category a student can complete to achieve certification.
Discipline and Degree: A program is defined by its discipline and degree, with a one-to-many (1:n) relationship.
Category: Categories have a many-to-many (n:m) relationship with programs, meaning a program can belong to multiple categories.
Gear Type: This denotes the equipment (e.g., boat, kite, etc.) used to complete the program. The gear_type is associated with a student's program upon enrollment to ensure flexibility and relevance to the student's experience.
Curriculum
To address the dynamic nature of programs, we introduce the concept of a curriculum, which snapshots a program at a specific point in time. This ensures historical integrity and continuity for students' achievements.
Association with Gear Types: The curriculum links gear_types in a many-to-many (m:n) relationship, allowing changes over time in the equipment certified for a program.
Modules
A curriculum comprises modules, which in turn consist of competencies. Through join tables, both entities maintain a many-to-many (m:n) relationship with a curriculum.
Module Completion: The current policy is that only modules can be marked as required. However, to technically accommodate future changes, the required status is tracked at the link level between competency and module.
Progress Tracking
We track student progress by linking a student to a curriculum and recording achievements in two categories:
Completed Competencies
Achievements are stored in the student_completed_competency table and linked to a certificate.
A certificate pending issuance (with a null issued_at field) indicates ongoing progress. Once issued, the record becomes immutable.
Competency Progress
To accommodate different locations' nuanced progress tracking needs, we allow recording a progress number (>= 0 and <1) for competencies.
It is not designed for detailed monitoring of students, nor does it facilitate the sharing of progress across different locations or direct visibility of progress to the students themselves.
Implementation Status
We have begun implementing this proposal as a pilot project to evaluate its effectiveness and gather early feedback. The experimental implementation can be viewed and reviewed in our code repository. We encourage community members, contributors, and interested parties to explore the implementation details and contribute their insights or suggestions for improvement.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Introduction
This RFC proposes a data model for storing programs and tracking student progress within the
Nationaal Watersportdiploma
(NWD) system. This model is designed to accommodate the evolving nature of water sports programs and provide a flexible framework for recording student achievements.Note: This document outlines general concepts, deliberately omitting implementation specifics such as timestamps and audit logs for clarity.
Proposal
Program
A
program
represents a structured set ofmodules
within a specificdiscipline
,degree
, andcategory
a student can complete to achieve certification.program
is defined by itsdiscipline
anddegree
, with a one-to-many (1:n
) relationship.n:m
) relationship with programs, meaning a program can belong to multiple categories.gear_type
is associated with a student's program upon enrollment to ensure flexibility and relevance to the student's experience.Curriculum
To address the dynamic nature of programs, we introduce the concept of a
curriculum
, which snapshots aprogram
at a specific point in time. This ensures historical integrity and continuity for students' achievements.curriculum
linksgear_types
in a many-to-many (m:n
) relationship, allowing changes over time in the equipment certified for a program.Modules
A
curriculum
comprisesmodules
, which in turn consist ofcompetencies
. Through join tables, both entities maintain a many-to-many (m:n
) relationship with acurriculum
.competency
andmodule
.Progress Tracking
We track student progress by linking a student to a
curriculum
and recording achievements in two categories:Completed Competencies
student_completed_competency
table and linked to acertificate
.certificate
pending issuance (with a nullissued_at
field) indicates ongoing progress. Once issued, the record becomes immutable.Competency Progress
Implementation Status
We have begun implementing this proposal as a pilot project to evaluate its effectiveness and gather early feedback. The experimental implementation can be viewed and reviewed in our code repository. We encourage community members, contributors, and interested parties to explore the implementation details and contribute their insights or suggestions for improvement.
You can find the current implementation here: View Implementation
Feedback on the implementation is highly valued as it will inform future adjustments and improvements to the proposed model.
Discussion
We invite the community to provide feedback on this proposal. Specifically, we seek input on the following points:
Please comment below or join our Discord to contribute to the discussion.
Beta Was this translation helpful? Give feedback.
All reactions