# User documentation ## Student ### Register, login, join group and submit solution to assignment ### Forgot your password, do not worry ### Change your profile information and some of other settings // TODO: password change, profile change, email notifications ## Group supervisor ### Create group, add students in it and view their results ### Create exercise update its information and then assign it to group ## Administrator ### Create instance and manage it // TODO: create, delete, update, manage licenses ### Users management There are only few roles to which users can belong in ReCodEx. Basically there are only three: student, supervisor, and superadmin. Base role is student which is assigned to every registered user. Roles are stored in database alongside other information about user. One user always has only one role at the time. At first startup of ReCodEx administrator should create his/hers account and them change role in database by hand. After that manual intervention into database should never be needed. There is a little catch in groups management. Groups can have admins and supervisors. This setting is valid only per one particular group and has to be separated from basic role system. This implies that supervisor in one group can be student in another and simultaneously have global supervisor role. Changing role from student to supervisor and back is done automatically by application and should not be managed by hand in database! Roles description: - Student -- Default role which is used for newly created accounts. Student can join or leave public groups and submit solutions of assigned exercises. - Supervisor -- Inherits all permissions from student role. Can manage groups to which he/she belongs to. Supervisor can also view and change groups details, manage assigned exercises, view students in group and their solutions for assigned exercises. On top of that supervisor can create/delete groups too, but only as subgroup of groups he/she belongs to. - Superadmin -- Inherits all permissions from supervisor role. Most powerfull user in ReCodEx who should be able to do everything which is provided by application.