[13025] | 1 | .. _registration_workflow: |
---|
| 2 | |
---|
| 3 | Registration Workflow |
---|
| 4 | ===================== |
---|
| 5 | |
---|
| 6 | Studying at a higher education institution means following |
---|
| 7 | orchestrated and repeatable patterns of activities or, in other |
---|
[13484] | 8 | words, following a process workflow prescribed by the school |
---|
| 9 | regulations. This process starts with application for studying a |
---|
| 10 | programme offered by the school, and may end with de-registration of |
---|
| 11 | a student. But even after de-registration, former students can be |
---|
| 12 | kept in the system as alumni so that they can still access their |
---|
| 13 | records or can apply for official transcripts. |
---|
[13025] | 14 | |
---|
| 15 | Kofa divides these 'repeatable patterns of activities' into two |
---|
[13484] | 16 | different and strictly seperated process workflows: an application |
---|
| 17 | and a student registration workflow. The latter, which presupposes |
---|
| 18 | the admission of the student, will be described here. |
---|
[13025] | 19 | |
---|
| 20 | A worflow defines states and transitions between the states. The |
---|
| 21 | following diagram shows the entire student registration workflow. |
---|
| 22 | Workflow states are connected with dashed lines which symbolize |
---|
| 23 | workflow transitions. There are no arrows at the end of each line |
---|
| 24 | because in most cases, Kofa provides transitions in both directions. |
---|
| 25 | Transitions are denoted by lower-case characters, reverse |
---|
| 26 | transitions additionally by a preceded dash. A few transitions do |
---|
| 27 | not make sense and are thus not available (N/A):: |
---|
| 28 | |
---|
| 29 | a |
---|
[15163] | 30 | created ------- admitted |
---|
| 31 | b | |
---|
| 32 | +----------------+ |
---|
| 33 | | e |
---|
| 34 | +------------------------------------------------------+ |
---|
| 35 | | c d | |
---|
| 36 | clearance started ------- clearance requested ------- cleared |
---|
| 37 | | |
---|
| 38 | f | |
---|
| 39 | +--------+---------------------------------------------+ |
---|
| 40 | | | |
---|
| 41 | | h school fee paid -------- returning -------------+ |
---|
| 42 | | | \ l | | |
---|
| 43 | +--------+ g \ _ _ _ m | k | |
---|
| 44 | | \ | | |
---|
| 45 | courses registered ------ courses validated | |
---|
| 46 | | i | | |
---|
| 47 | | | n | |
---|
| 48 | | j | | |
---|
| 49 | | +-- graduated | |
---|
| 50 | | | | | |
---|
| 51 | | | | o | |
---|
| 52 | | | | | |
---|
| 53 | | | transcript requested | |
---|
| 54 | a: admit | | | | |
---|
| 55 | -a: reset1 | r | | p | |
---|
| 56 | b: start_clearance | | | | |
---|
| 57 | -b: reset2 | | transcript validated | |
---|
| 58 | c: request_clearance | | | | |
---|
| 59 | -c: reset3 | | | q | |
---|
| 60 | (= reject request) | | | | |
---|
| 61 | d: clear | +-- transcript released | |
---|
| 62 | -d: N/A +---------------------------------+ |
---|
[13025] | 63 | e: N/A |
---|
| 64 | -e: reset4 (= annul clearance) |
---|
| 65 | f: pay_first_school_fee, approve_first_school_fee |
---|
| 66 | -f: reset5 (= annul payment) |
---|
| 67 | g: register_courses |
---|
[13610] | 68 | -g: reset7 (= unregister) |
---|
[13025] | 69 | h: pay_pg_fee, approve_pg_fee |
---|
| 70 | -h: N/A |
---|
| 71 | i: validate_courses |
---|
| 72 | -i: N/A |
---|
| 73 | j: bypass_validation |
---|
| 74 | -j: N/A |
---|
| 75 | k: return |
---|
| 76 | -k: reset9 |
---|
| 77 | l: pay_school_fee, approve_school_fee |
---|
| 78 | -l: reset6 (= annul payment) |
---|
| 79 | m: N/A |
---|
| 80 | -m: reset8 (= annul validation) |
---|
| 81 | n: N/A |
---|
| 82 | -n: N/A |
---|
| 83 | o: request_transcript |
---|
[15163] | 84 | -o: reset10 (= reject request) |
---|
| 85 | p: validate_transcript |
---|
| 86 | -p: N/A |
---|
| 87 | q: release_transcript |
---|
| 88 | -q: N/A |
---|
| 89 | r: N/A |
---|
| 90 | -r: reset11 |
---|
[13025] | 91 | |
---|
| 92 | Student registration starts with the first login of the student into |
---|
| 93 | state ``admitted``. After filling the email adress and phone number |
---|
| 94 | field, and also uploading a passport picture, the student |
---|
| 95 | immediately proceeds with the clearance sub-workflow. S/he starts |
---|
[13041] | 96 | clearance **(b)** either directly or by using a clearance access |
---|
[13025] | 97 | code, depending on the configuration of the portal. After filling |
---|
| 98 | the clearance form and uploading all necessary documents, the |
---|
[13072] | 99 | student requests clearance **(c)** which can be either accepted **(d)** |
---|
| 100 | or rejected **(-c)** by a clearance officer. A cleared student |
---|
[13025] | 101 | can enter the 'cyclical' part of the workflow which starts after |
---|
| 102 | first school fee payment **(f)**. |
---|
| 103 | |
---|
| 104 | A properly registering undergraduate student creates a new study |
---|
| 105 | level (course list) at the beginning of each academic session, adds |
---|
| 106 | the necessary course tickets and finally registers the list **(g)**. |
---|
| 107 | The student's course adviser subsequently validates the list **(i)**, |
---|
[13026] | 108 | or rejects the course registration request **(-g)** so that the |
---|
[13025] | 109 | student has to register again. Even after validation there is an |
---|
| 110 | option to annul the already validated course list **(-m)** so that |
---|
| 111 | the student can revise the list. At the end of the session, when all |
---|
| 112 | exams have been taken, course results (scores) are either entered by |
---|
| 113 | lecturers or imported by an import officer, a verdict is announced |
---|
| 114 | and the student is finally enabled to return **(k)**. In Kofa the |
---|
| 115 | last two steps are automatically performed by the Verdict Batch |
---|
| 116 | Processor. In some cases, course validators are not available or |
---|
| 117 | course validation is not necessary. Then validation can be skipped |
---|
| 118 | **(j)** by setting `bypass_validation` in the processor's import |
---|
| 119 | file to ``True``. In both cases the student arrives in state |
---|
| 120 | ``returning`` but is still in the same session. Also the current |
---|
| 121 | level has not changed. The new session starts only if the student |
---|
| 122 | pays school fee for the subsequent session **(l)**. Then |
---|
| 123 | `current_session` increases by one, `current_level` is set according |
---|
| 124 | to the verdict obtained, the old verdict is copied into |
---|
| 125 | `previous_verdict` and `current_verdict` is cleared. The student has |
---|
| 126 | arrived in the new academic session in state ``school_fee_paid``. |
---|
| 127 | The **gikl** cycle is repeatedly passed through till the student is |
---|
| 128 | ready for graduation. |
---|
| 129 | |
---|
| 130 | So far we have spoken about undergraduate students. The same |
---|
| 131 | sequence of transitions also applies to postgraduate students if |
---|
| 132 | they have to pass several levels (e.g. 700 and 800). Very often the |
---|
| 133 | level model does not apply to postgraduates. The students remain in |
---|
| 134 | the same (999) level but pay for each year of studying. In this case |
---|
| 135 | the **gikl** cycle collapses to the **h** cycle. Students may add |
---|
| 136 | course tickets whenever they like, but cannot register their course |
---|
| 137 | list. |
---|
| 138 | |
---|
[15163] | 139 | After graduation, former students (alumni) can apply for an official |
---|
| 140 | transcript. The transcript processing workflow (**opqr**) is a |
---|
| 141 | subset of the registration workflow which starts in state |
---|
| 142 | ``graduated``. Many people are involved in transcript processing. |
---|
| 143 | Therefore, Kofa provides two additional roles, the Transcript |
---|
| 144 | Officer and Transcript Signee roles. Both are available globally and |
---|
| 145 | locally (at faculty level). First of all, the graduated student has |
---|
| 146 | to request a transcript **(o)** by filling a request form. The |
---|
| 147 | Transcript Officer will see the new request and can either reject |
---|
| 148 | the request **(-o)** or validate the request **(p)**. Before |
---|
[15334] | 149 | validation course results can be edited or added by a Students |
---|
| 150 | Manager, transcript study level remarks also by Transcript Officers. |
---|
| 151 | After validation the entire studycourse including its content is |
---|
| 152 | locked. Nobody will be able to modify the course lists, neither |
---|
| 153 | through the UI nor by import. Transcripts can now be electronically |
---|
| 154 | signed by Transcript Signees. Once all signees have done their job, |
---|
| 155 | the Transcript Officer can release the transcript **(q)**. A pdf |
---|
| 156 | file is created and stored in the file system. The transcript pdf |
---|
| 157 | slip contains all signatures. The dynamic transcript generation is |
---|
| 158 | disabled. Nothing can be changed now, unless the entire transcript |
---|
| 159 | process is reset **(-r)** by a Students Manager. Then comments and |
---|
| 160 | signatures will be removed and the pdf file deleted. The student can |
---|
| 161 | start afresh. |
---|
[13025] | 162 | |
---|
[13083] | 163 | .. _registration_workflow_batch_processing: |
---|
[13025] | 164 | |
---|
| 165 | Workflow Batch Processing |
---|
| 166 | ========================= |
---|
| 167 | |
---|
| 168 | The :py:class:`StudentProcessor |
---|
| 169 | <waeup.kofa.students.batching.StudentProcessor>` allows to import |
---|
| 170 | either workflow states or transitions. As already emphasized in the |
---|
| 171 | description of the processor class, we refer to them as unsafe and |
---|
| 172 | safe respectively. Transitions are only possible between allowed |
---|
| 173 | workflow states. Only transitions ensure that the registration |
---|
| 174 | workflow is maintained. Setting the workflow state by import is |
---|
| 175 | considered brute and must be avoided. |
---|
| 176 | |
---|
| 177 | |
---|
| 178 | .. _student_history: |
---|
| 179 | |
---|
| 180 | Student History |
---|
| 181 | =============== |
---|
| 182 | |
---|
| 183 | All transitions are automatically logged in ``students.log``. And |
---|
| 184 | also the import of workflow states is recorded in the logfile. |
---|
| 185 | However, these logfiles can only be accessed by some officers and |
---|
| 186 | are hidden from students. Since Kofa takes up the cause of |
---|
[13098] | 187 | transparancy, we are of the opinion, that also students must know, |
---|
[13025] | 188 | when and by whom the state of their record was changed. Therefore we |
---|
| 189 | store all workflow-relevant changes additionally in the student |
---|
| 190 | history which is attached to the student object. The history is a |
---|
| 191 | list of messages. Each message contains the local time, the workflow |
---|
| 192 | transition message and the public name of the user who triggered the |
---|
| 193 | transition, either online or by import:: |
---|
| 194 | |
---|
| 195 | 2015-05-16 05:11:34 UTC - Record created by System Admin |
---|
| 196 | 2015-05-30 07:34:09 UTC - Admitted by System Admin |
---|
| 197 | 2015-05-30 08:34:11 UTC - Clearance started by John Doe |
---|
| 198 | 2015-05-30 09:34:15 UTC - Clearance requested by John Doe |
---|
| 199 | 2015-05-30 10:37:27 UTC - Cleared by Clearance Officer |
---|
| 200 | |
---|
| 201 | If the workflow state is set by import, the following message would |
---|
| 202 | have been added instead:: |
---|
| 203 | |
---|
| 204 | 2015-05-30 10:37:27 UTC - State 'cleared' set by Import Officer |
---|
| 205 | |
---|
| 206 | Student histories are exportable but cannot be imported. |
---|