source: main/waeup.kofa/branches/henrik-transcript-workflow/docs/source/userdocs/students/workflow.rst @ 15128

Last change on this file since 15128 was 15128, checked in by Henrik Bettermann, 6 years ago

Extend transcript workflow (par 1)

File size: 8.3 KB
Line 
1.. _registration_workflow:
2
3Registration Workflow
4=====================
5
6Studying at a higher education institution means following
7orchestrated and repeatable patterns of activities or, in other
8words, following a process workflow prescribed by the school
9regulations. This process starts with application for studying a
10programme offered by the school, and may end with de-registration of
11a student. But even after de-registration, former students can be
12kept in the system as alumni so that they can still access their
13records or can apply for official transcripts.
14
15Kofa divides these 'repeatable patterns of activities' into two
16different and strictly seperated process workflows: an application
17and a student registration workflow. The latter, which presupposes
18the admission of the student, will be described here.
19
20A worflow defines states and transitions between the states. The
21following diagram shows the entire student registration workflow.
22Workflow states are connected with dashed lines which symbolize
23workflow transitions. There are no arrows at the end of each line
24because in most cases, Kofa provides transitions in both directions.
25Transitions are denoted by lower-case characters, reverse
26transitions additionally by a preceded dash. A few transitions do
27not make sense and are thus not available (N/A)::
28
29              a
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             |              | 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                +---------------------------------+
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
68    -g: reset7 (= unregister)
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
84    -o: reset10 (= reject request)
85     p: validate_transcript
86    -p: N/A
87     q: release_transcript
88    -q: N/A
89
90Student registration starts with the first login of the student into
91state ``admitted``. After filling the email adress and phone number
92field, and also uploading a passport picture, the student
93immediately proceeds with the clearance sub-workflow. S/he starts
94clearance **(b)** either directly or by using a clearance access
95code, depending on the configuration of the portal. After filling
96the clearance form and uploading all necessary documents, the
97student requests clearance **(c)** which can be either accepted **(d)**
98or rejected **(-c)** by a clearance officer. A cleared student
99can enter the 'cyclical' part of the workflow which starts after
100first school fee payment **(f)**.
101
102A properly registering undergraduate student creates a new study
103level (course list) at the beginning of each academic session, adds
104the necessary course tickets and finally registers the list **(g)**.
105The student's course adviser subsequently validates the list **(i)**,
106or rejects the course registration request **(-g)** so that the
107student has to register again. Even after validation there is an
108option to annul the already validated course list **(-m)** so that
109the student can revise the list. At the end of the session, when all
110exams have been taken, course results (scores) are either entered by
111lecturers or imported by an import officer, a verdict is announced
112and the student is finally enabled to return **(k)**. In Kofa the
113last two steps are automatically performed by the Verdict Batch
114Processor. In some cases, course validators are not available or
115course validation is not necessary. Then validation can be skipped
116**(j)** by setting `bypass_validation` in the processor's import
117file to ``True``. In both cases the student arrives in state
118``returning`` but is still in the same session. Also the current
119level has not changed. The new session starts only if the student
120pays school fee for the subsequent session **(l)**. Then
121`current_session` increases by one, `current_level` is set according
122to the verdict obtained, the old verdict is copied into
123`previous_verdict` and `current_verdict` is cleared. The student has
124arrived in the new academic session in state ``school_fee_paid``.
125The **gikl** cycle is repeatedly passed through till the student is
126ready for graduation.
127
128So far we have spoken about undergraduate students. The same
129sequence of transitions also applies to postgraduate students if
130they have to pass several levels (e.g. 700 and 800). Very often the
131level model does not apply to postgraduates. The students remain in
132the same (999) level but pay for each year of studying. In this case
133the **gikl** cycle collapses to the **h** cycle. Students may add
134course tickets whenever they like, but cannot register their course
135list.
136
137
138.. _registration_workflow_batch_processing:
139
140Workflow Batch Processing
141=========================
142
143The :py:class:`StudentProcessor
144<waeup.kofa.students.batching.StudentProcessor>` allows to import
145either workflow states or transitions. As already emphasized in the
146description of the processor class, we refer to them as unsafe and
147safe respectively. Transitions are only possible between allowed
148workflow states. Only transitions ensure that the registration
149workflow is maintained. Setting the workflow state by import is
150considered brute and must be avoided.
151
152
153.. _student_history:
154
155Student History
156===============
157
158All transitions are automatically logged in ``students.log``. And
159also the import of workflow states is recorded in the logfile.
160However, these logfiles can only be accessed by some officers and
161are hidden from students. Since Kofa takes up the cause of
162transparancy, we are of the opinion, that also students must know,
163when and by whom the state of their record was changed. Therefore we
164store all workflow-relevant changes additionally in the student
165history which is attached to the student object. The history is a
166list of messages. Each message contains the local time, the workflow
167transition message and the public name of the user who triggered the
168transition, either online or by import::
169
170  2015-05-16 05:11:34 UTC - Record created by System Admin
171  2015-05-30 07:34:09 UTC - Admitted by System Admin
172  2015-05-30 08:34:11 UTC - Clearance started by John Doe
173  2015-05-30 09:34:15 UTC - Clearance requested by John Doe
174  2015-05-30 10:37:27 UTC - Cleared by Clearance Officer
175
176If the workflow state is set by import, the following message would
177have been added instead::
178
179  2015-05-30 10:37:27 UTC - State 'cleared' set by Import Officer
180
181Student histories are exportable but cannot be imported.
Note: See TracBrowser for help on using the repository browser.