In the design of our database, we were focusing on two important models, Terms and Users.
Users are identified into 5 groups, which are student, course coordinator, tutor coordinator, marker coordinator and admin.
Each group has a different permissions. For example, admin user allow all operations (the highest permissions) but student allow application operation. Permission functions prevents different roles use the functions that do not belong to them. For example, we are not allow student to edit courses.
Applications: The application function is one of the most important functions. We consider a student can apply for difference roles in many available courses in a specific term.