Skip to content

Training management system


Brief description of the system

As part of the project, a system should be created to improve the management of training courses.


Main system functions

  • Registration of the administrator, lecturers and students
  • Calendar of classes
  • Sharing materials about the classes by the lecturers
  • Notification subsystem

Technologies

  • Spring + Hibernate
  • (optional) Frontend in Angular/React/Thymeleaf

Basic entities (Proposal)


User

  • login
  • password
  • type (ADMIN/LEADER/PARTICIPANT)
  • first name
  • last name
  • active/inactive

Application of the participant

  • date
  • participant (User)
  • course (Course)

Course

  • name
  • blocks of classes (Block of classes)

Block of classes

  • name
  • list of classes (Classes)

Activities

  • subject
  • date

Notification

  • classes (Classes)
  • subject
  • content

User notifications

  • read notifications (Notification)
  • unread notifications (Notification)

Additional Relationships

  • User participation in the course.
  • Marking whether a given notification has been read by a given user.

Functionalities


Registration

  • by default, we have one administrator account
  • the administrator can create (and delete) lecturers' accounts
  • the user registers via the application form - provides the name of the course, and then the administrator accepts the application or declines it.

The administrator has the following forms available:

  • for editing courses (creating, editing - including assigning blocks of classes, deleting)
  • for editing blocks of classes (creating, editing - including assigning and editing classes - all on one form, deleting)
  • to accept participants' applications *) Another variant is to bypass the participant registration system and allow the administrator to create participant accounts for the courses.

Courses

  • After logging in, the teacher should have a list of courses in which he conducts blocks of classes
  • after selecting a course, a list of blocks that he conducts should be displayed
  • after clicking on the selected block, he should see a list of class dates with topics
  • after clicking on selected classes, the instructor can edit the notifications assigned to the classes

The course participant should be able to use three views:

  • calendar: classes are marked on the calendar along with information about the topic and block of classes (using the selected calendar library)
  • notifications: unread notifications should be displayed first, then read
  • lesson blocks: a view where the participant can select a class block. After selecting a block of classes, classes within that block are displayed: their dates, topics and notifications areassigned to classes

Project development

  • allow the administrator to create a template (plan) of the course (including the names of the blocks, and within the blocks of the lesson topics). Then, the administrator would select only the name of the edition and assign dates to classes conducted as part of the course
  • enable the teacher to publish materials for the classes. In the view showing specific classes within the class block, the teacher can upload files related to these classes. Then, in the view that shows the activity, participants see links to these files
  • enable the lecturers to add tests to classes. The teacher, after selecting specific classes, can create a test (for example, a form on which we can add questions). Then the participant should be redirected to the test form. After completing the test, the participant cannot solve the test again - instead, information about its result is displayed
  • development of the test system could include the use of templates, selection of the question type (multiple choice/text/radio answer and the maximum date for solving the test, + notification of participants who did not complete the test 3 days before that date)

Additional requirements

  • it is necessary to ensure an aesthetic and functional way of presenting data
  • data downloaded from users should be pre-validated