= Functional Description = The colored items are the ones that need to be filled in by our project: [[Image(extension school website architectuur.png,100%)]] [[PageOutline]] # Learning mall actions # == A1. Find courses by criteria == === Facets === The website allows visitors to find courses by a number of criteria. The user can filter the search by applying filters on a number of facets. The facets are: - startDate - duration - estimatedEffort - language (QUESTION: do we want to show this when there is only one language?) - delivery - certifyingBody - creditType - credits TODO: What is the order of the facets on the page === Free text search === Visitors can enter search criteria on the website. This is free text. The text will be searched in the following fields of the course objects: - code - title - briefDescription - fullDescription - startDate (QUESTION: really?) - duration - estimatedEffort - language - delivery - certifyingBody - creditType - credits == A2. Display CPCC’s within criteria == A part of the page is filled with the search result from the faceted search described above. The results are limited to a specific number (depends on graphics design). At the end of the result there will be a button 'more courses' that will retrieve the next 'page' of the results. These results will be added to the current page through an ajax call. See http://online-learning.harvard.edu for an example that closely resembles what we want. == A3. Admission type for CPCC == The 'enroll' option for a course will make a distinction between cpcc's with a 'pre' enrollment strategy and cpcc's with a 'post' of 'self' enrollment strategy. The first case will direct the user to action [#A4 A4], the other case will lead to action [#A5.Forwardtopaymentsystem A5] == A4 == This is a branching action resulting in three outcomes: - The course registration for the current user is registered in the learner registration system with a status of 'pending pre admission' through action [#B1.Registerpendingcourseregistration B1] - The subprocess 'Manually handle pre-admission' is started for this learner/cpcc (TODO: specify how this is done) - The learner is presented with a page telling him this process has been started and he will now need to be patient. The same information is sent to him through e-mail. == A5. Forward to payment system == This action is responsible for forwarding the learner to the payment provider. The action will need to create an identification of the current transaction, holding at least the id of the learner, and the id of the ccpc that is being payed, handing of this data to the payment provider. Information pertaining to meta-data on the ccpc and/or learner may need to be attached (TODO: which information is this?) The status of this learner's pending registration is updated in the learner registration system through action [#B1.Registerpendingcourseregistration B1] == A6. Admission type for CPCC == This action does the selection prior to giving the signal "go ahead and start learning" to the learner. It will check on the admission-type for the given cpcc and display an informational page for the learner on how to proceed now if the admission-type is 'self' or 'pre'. (QUESTION: Also e-mail confirmation?). If the admission-type is 'post', some extra handling is necessary and action [#A7 A7] is started. == A7 == This action is a gather and fork action. First it makes sure that actions [#A6.AdmissiontypeforCPCC A6] and [#E2.Enrolluserincourse E2] have been done. Then it performs the following two actions: - The subprocess 'Manually handle the admission' is started. (TODO: specify how this is done) - Display an informational page for the learner on how to proceed now. (QUESTION: Also e-mail confirmation?) # Learner registration system actions # == B1. Register pending course registration == This action registers the fact that a learner is in the process of registering for a cpcc. This process is always in a certain state. == B2. Register course payment == This action registers the fact that a pending registration has been payed. Special care needs to be taken that this information cannot disappear (financial tracking). The action then forwards to action [#B3 B3] == B3 == This action is a parallel branching action starting of a number of separate actions: - Make sure a netid is created for the current learner through action [#D1 D1]. - Make sure the learner is registered in Osiris through action 'Create student record in Osiris' (TODO: specify how this is done) - Update the learner's account status through action [#B4.Updatelearneraccountstatus B4] == B4. Update learner account status == This action makes sure that the account status for the given learner is updated to the proper status (meaning this learner has payed money to the extension school!) == B5 == This action waits for two processes to finish: [#B4.Updatelearneraccountstatus B4] (update learner account status after having payed) and [#E1 E1] (create the learner as a user in Blackboard). When these two processes signal finish (TODO: How do they do that?) the following two actions are started: - [#A6.Admissiontypeforcpcc A6]: "Handle the go-signal for this user to start learning" - [#E2 E2]: Enroll this user in the proper Blackboard course == B6. Register course admission status == This action registers the fact that the learner was formally admitted in the given cpcc == B7. Register course denial status == This action registers the fact that the learner was formally denied access to the given cpcc == B8 == This action branches off the parallel actions required to handle the fact that a learner was denied access to a cpcc. It starts the following actions: - Refund the learner (TODO: specify how this is done) - Consume bad news message: failed admission (by sending an e-mail to the learner) == B9. Register learner-course performance == This action registers the performance of a learner in a course == B10 == BUG: This part of the diagram looks buggy. Probably the teacher registers in Osiris first... # Digital offering registration system # This awful name is given to the database that holds the course-information, certification possibilities and their combinations. == C1 == BUG: The diagram looks wrong here. Probable action C1 should be "Record information for a new course", and the arrow coming in from above should go directly to C2. == C2. Yield CPCC information == This action handles the search and faceted search and retrieves cpcc's that match the filter/search-entry. # NetID # NetID is the Identity management system for TU Delft. A 'netid' designates the username a given user holds in the NetID system. == D1. Create a netid + password == After a user has payed he is entitled to receive a 'proper' netid. Since he was already known in the learning mall his data will be transferred from there and used to create this new netid-entry. # Blackboard # Blackboard is the digital learning environment currently in use by TU Delft. == E1. Provision a new user == Provisioning a user means creating her netid as a regular Blackboard-user. After the user is provisioned she can log on to Blackboard. == E2. Enroll user in course == Enrollment means that the given Blackboard-user is registered as a student in the given course. # Digital payment system # This system remains to be implemented. It will probably be supplied by Ogone. == F1. Handle course / program payment == This action will handle the payment of the cpcc by the learner and will provide the necessary data back to properly digest this at TU Delft.