User¶
A User object represents either a student, a supervisor,
or an academic assistant. Since all users of this system have similar
basic information, such as username and email, we represented them all
as User object, and restrict their behaviors according to a field role.
Each User object has following attributes:
usernamestringA unique name with which the user can refer to one another. It is also the primary key and allows the user to sign in.
namestringThe legal name of the user. This is required for group members to recognize each other, and for the academic assistants to collect their results.
emailstringThe email address that is used to contact with the user.
passwordstringThe password for the user’s account, encrypted with a hash function.
rolestringThe role of the user in this system. It can be:
student: Students who are participating in a group project or internship.supervisor: The supervisor of project(s).assistant: The academic assistant of a department.
departmentstring, optionalThe department of the user, such as
ICT,SA, orLS. Required for students and assistants.student-idstring, optionalOnly applicable for users with role
student: A unique identifier assigned to students to be used outside this system.bioobject, optionalA markup text describing the user. This is not necessary, but it can be helpful for a supervisor to have a biography to show their credibility in their respective field.