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:

usernamestring

A unique name with which the user can refer to one another. It is also the primary key and allows the user to sign in.

namestring

The legal name of the user. This is required for group members to recognize each other, and for the academic assistants to collect their results.

emailstring

The email address that is used to contact with the user.

passwordstring

The password for the user’s account, encrypted with a hash function.

rolestring

The 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, optional

The department of the user, such as ICT, SA, or LS. Required for students and assistants.

student-idstring, optional

Only applicable for users with role student: A unique identifier assigned to students to be used outside this system.

bioobject, optional

A 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.