= Functional Description = The colored items are the ones that need to be filled in by our project: [[Image(extension school website architectuur - 0.5.png,100%)]] [[PageOutline]] # Learning mall actions # == B1. 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 == B2. 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. == B3. 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 [#B4 B4], the other case will lead to action [#B5.Forwardtopaymentsystem B5] == B4 == 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 [#D1.Registerpendingcourseregistration D1] - 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. == B5. 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 [#D1.Registerpendingcourseregistration D1] == B6. 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 [#B7 B7] is started. == B7 == This action is a gather and fork action. First it makes sure that actions [#B6.AdmissiontypeforCPCC B6] and [#H2.Enrolluserincourse H2] 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 # == D1. 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. == D2. 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 [#D3 D3] == D3 == 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.Registerpendingcourseregistration 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 [#D4.Updatelearneraccountstatus D4] == D4. 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!) == D5 == This action waits for two processes to finish: [#D4.Updatelearneraccountstatus D4] (update learner account status after having payed) and [#H1 H1] (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: - [#B6.AdmissiontypeforCPCC B6]: "Handle the go-signal for this user to start learning" - [#H2.Enrolluserincourse H2]: Enroll this user in the proper Blackboard course == D6. Register course admission status == This action registers the fact that the learner was formally admitted in the given cpcc == D7. Register course denial status == This action registers the fact that the learner was formally denied access to the given cpcc == D8 == 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) == D9. Register learner-course performance == This action registers the performance of a learner in a course == D10 == This action wait for the learner's performance to be registered (in [#D9.Registerlearner-courseperformance D9]) and the learner to be admitted in the course ([#D6.Registercourseadmissionstatus D6]). It will then trigger a certificate to be delivered to the learner (A12) == D11 == This action presents a 'worklist' of pending course registrations for which action is required in the admission process # Digital offering registration system # This awful name is given to the database that holds the course-information, certification possibilities and their combinations. == E1 == This action registers all data for a cpcc == E2. 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. == G1. 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. == H1. 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. == H2. 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. == I1. 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.