# User documentation ## Student ### Register, login, join group and submit solution to assignment - Registration can be made on separate page, _Create acount_ link from left menu. There are two forms, one for ReCodEx authentication and one for CAS (Charles University Authentication System) authentication. During the process instance has to be chosen. After successful registration you will be automatically logged in. - Login forms are located on page accessible through _Sign in_ link from menu. The same type of form as the registration must be used. After login occurs redirection to _Dashboard_ -- page with overview of achievements for each group user is member of. - New page with details about used instance is accessible from menu, specificaly containing list public groups. From group detail page is possible to join (or leave) the group. Private groups are hidden and only supervisor can add students to that group. - Pages of joined groups are accessible from menu. There is a list of assigned exercises. Detail of each assignment contains description of problem, deadlines, already submitted solution and other information. - Solution is submitted from assignment detail page through _Submit new solution_ button. After uploading source files the evaluation will start showing current progress. When finished, button _See results_ redirects to page with results summary. ### Forgot your password? Do not worry! - Well... First, let me tell you that this option is available only if you registered with our authentication service, for external ones this will not work. - Under login form there is link which can lead you to forgotten password page. Here you can type your email address which was used during registration. - On given email short message from ReCodEx robots should arrive. Part of this message will be link which will lead you back to us on password change page. - In here password change takes place, after that you can hopefully log in with your new password. - Please note that password change link is time limited and is functional only for few minutes. ## Group supervisor ### Create exercise, update its information and then assign it to group - Not implemented in web application yet! ### Add students in your group and view their results - Groups can be public or private. Public groups are visible to all instance users and students can join them. Private ones are hidden and students can be only added to them. - As supervisor of group you can add students to it by hand on group detail page. - Over there you can also see list of all students in group, their overall results and all assigned exercises. - In students profiles there can be found detailed information about their submissions in all assignments. - Detailed description of particular submission, files which was submitted etc. can be also found in students profile. ## Group administrator ### Create sub-group and add or delete supervisor - As a group administrator you can create sub-groups of groups where you are assigned as administrator. - On group detail page there should be form which is supposed to create new sub-group of current one. - In here you can fill some basic information about it and submit it. - After successful creation of new group you can find it in refreshed group hierarchy. - On detail page of newly created group you can add another sub-group or add new supervisors. - Supervisors can be searched by their names, surnames or emails. After adding of supervisor he/she should be visible in supervisor's list. - In there you can also delete supervisor from current group. ## Superadministrator Superadmin is the ultimate role of whole ReCodEx. If you are one of the few ones be aware that you can do anything in web application. "With great power comes great responsibility", so please, use it carefully. ### 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 then change role in database by hand. After that manual intervention into database should never be needed. There is a little catch in groups and instances 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! Previously stated information can be applied to instances as well, but instances can only have admins. 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 powerful user in ReCodEx who should be able to do everything which is provided by application.