Brief
For PS (Professional Services), we mainly working with PDRs (Professional Development Records, which are a type of courses for student to take and promote their rank), certificates, notifications, user importer and other extensions (BCF and CSMART have special extension service in their organizations.) (We usually do not work with RTA. So it is ok to skip that setup.)
We have 2 code bases:
https://gitlab.com/m8284/coredev for core services and extension services (our application is here)
https://gitlab.com/m8284/psdev for ps service tools
Before details, let’s briefly talk about the whole Marine Learning System (MLS). And details will be explained in following articles.
Setups
If you setup the system correctly, you should be able to start the background services (both core service and extension service) in task manager. Every time you re-build a solution, you will need to restart the service to see the changes.
The dbs you download from livebackup are anonymized dbs. They contains no sensitive user info. Thus you will see usernames like PatLearner0001A7D8-E9C1-11E8-80C5-00000A7B69B5.
If you just restored a new DB, it takes longer time (about 5-10 mins, remember to restore the db in a ssd of the PC!) to migrate the database and start the service. (You can have multiple code folders as well as multiple services).
When the service(s) is running. You can start the application from Visual Studio. (remember to open VS as admin)
You can choose Start Debugging if you want the application pauses when it hits the breakpoint. Your browser will have the site opened automatically.
If you run the application locally, you will first see this page.
#1 is the entrance of the main page
#2 is the entrance of dev tools, where you can run commands, import users and setup DNS
System Structure (briefly about how it works)
The purpose of MLS is helping marine companies to give their staff proper training.
Thus we have courses:
and we have exams for courses: (not all courses have exam)
Some courses require the instructors (verifiers and sign-off users) to give user results: (usually a assessor assess the student first, then sign off user gives a final judgement of fail/pass):
In order to properly manage students and instructors, we have offering rules:
System reads those rules periodically and then pick up users who qualify the predicates to be registered as student or professor.
You can view registration status here: (inside a course)
REMEMBER: users do not register into courses. They register into OFFERINGs, and offerings belong to courses.
Users may get certificates after they finish courses (depending on setup). You can browse awarded certificates here
and click on view where there are certificates
After registered into course/ finished course/ awarded certificate/ certificate expired, users may receive emails (notifications) about what happened. It is bit tricky to trigger the notification. But you can preview them in pages/dev (and certificates as well):
If you see error messages like the given key is not present, it means you need to update some attributes (usually id-related attributes, depending on what is required by that template) to be actual data in database.
An admin user can create user in Manage → users
or use user importer:
The user importer takes a csv file and create users accordingly.
All those mentioned functions are in core service. There is another part of MLS: extension service, which is mainly maintained by PS team. Right now we only have BCF (AgendaBuilder, PassagePlanner and CompetenceSurfer) and CSMART using extension service.