nitpicks of Basic concepts

master
Teyras 8 years ago
parent 6af5cd85d8
commit 6048f50293

@ -473,82 +473,87 @@ of the system.
## Basic concepts ## Basic concepts
The system is designed as a web application. The requirements say that the user The system is designed as a web application. The requirements say that the user
interface must be accessible from students' computers without the need to interface must be accessible for students without the need to install additional
install additional software. This immediately implies that users have to be software. This immediately implies that users have to be connected to the
connected to the internet, so it is used as communication medium. Today, there internet, so it is used as communication medium. Today, there are two main ways
are two main ways of designing graphical user interface -- as a native of designing graphical user interfaces -- as a native application or a web page.
application or a web page. Creating a nice and multi-platform application with Creating a user-friendly and multi-platform application with graphical interface
graphical interface is almost impossible because of the large number of is almost impossible because of the large number of different environments.
different environments. Also, these applications often requires installation or Also, these applications typically require installation or at least downloading
at least downloading its files (sources or binaries). On the other hand, its files (sources or binaries). On the other hand, distributing a web
distributing a web application is easier, because every personal computer has an application is easier, because every personal computer has an internet browser
internet browser installed. Also, browsers support an (mostly) unified and installed. Also, browsers support a (mostly) unified and standardized
standardized environment of HTML5 and JavaScript. CodEx is also a web environment of HTML5 and JavaScript. CodEx is also a web application and
application and everybody seems satisfied with it. There are other communicating everybody seems satisfied with this fact. There are other communicating channels
channels most programmers have available, such as e-mail or git, but they are most programmers use, such as e-mail or git, but they are inappropriate for
inappropriate for designing user interfaces on top of them. designing user interfaces on top of them.
The application interacts with users. From the project assignment it is clear, The application interacts with users. From the project assignment it is clear,
that the system has to keep personalized data about users and adapt presented that the system has to keep personalized data about users and adapt presented
content according to this knowledge. User data cannot be publicly visible, so content according to this knowledge. User data cannot be publicly visible, which
that implies necessity of user authentication. The application also has to implies necessity of user authentication. The application also has to support
support multiple ways of authentication (university authentication systems, a multiple ways of authentication (university authentication systems, a company
company LDAP server, an OAuth server...) and permit adding more security LDAP server, an OAuth server...) and permit adding more security measures in the
measures in the future, such as two-factor authentication. future, such as two-factor authentication.
User data also includes a privilege level. From the assignment it is required to User data also include a privilege level. From the assignment it is required to
have at least two roles, _student_ and _supervisor_. However, it is wise to add have at least two roles, _student_ and _supervisor_. However, it is wise to add
_administrator_ level, which takes care of the system as a whole and is _administrator_ level for users who take care of the system as a whole and is
responsible for core setup, monitoring, updates and so on. Student role has the responsible for core setup, monitoring, updates and so on. Student role has the
least power, basically can just view assignments and submit solutions. least power, basically can just view assignments and submit solutions.
Supervisors have more authority, so they can create exercises and assignments, Supervisors have more authority, so they can create exercises and assignments,
view results of students etc. From the university organization, one possible view results of students etc. From the university organization, one possible
level could be introduced, _course guarantor_. However, from real experience all level could be introduced, _course guarantor_. However, from real experience all
duties related with lecturing of labs are already associated with supervisors, duties related with lecturing of labs are already associated with supervisors,
so this role seems not so useful. In addition, no one requested more than three so this role does not seem useful. In addition, no one requested more than three
level privilege scheme. level privilege scheme.
School labs are lessons for some students lead by supervisors. Students have the School labs are lessons for some students lead by supervisors. All students ina
same homework and supervisors are evaluating its solutions. This organization lab have the same homework and supervisors evaluate their solutions. This
has to be carried into the new system. Counterpart to real labs are virtual organization has to be carried over into the new system. Virtual groups are a
groups. This concept was already discussed in previous chapter including need counterpart to real-life labs. This concept was already discussed in the
for hierarchical structure of groups. Right for attending labs has only a previous chapter including the need for a hierarchical structure of groups. Only
person, who is student of the university and is recorded in university students of the university recorded in the university information system have a
information system. To allow restriction of group members in ReCodEx, there two right to attend labs.
type of groups -- _public_ and _private_. Public groups are open for every
registered users, but to become a member of private group one of its supervisors To allow restriction of group members in ReCodEx, there are two types of groups
have to add that user. This could be done automatically at beginning of the term -- _public_ and _private_. Public groups are open for all registered users, but
with data from information system, but unfortunately there is no such API yet. to become a member of private group, one of its supervisors have to add the
However, creating this API is now considered by university leadership. Another user. This could be done automatically at the beginning of the term with data
from information system, but unfortunately there is no API for this yet.
However, creating this API is now being considered by university staff. Another
just as good solution for restricting membership of a group is to allow anyone just as good solution for restricting membership of a group is to allow anyone
join the group with supplementary confirmation of supervisors. It has no join the group with supplementary confirmation of supervisors. It has no
additional benefits, so approach with public and private groups is implemented. additional benefits, so approach with public and private groups is implemented.
Supervisors using CodEx in their labs usually set minimum amount of points Supervisors using CodEx in their labs usually set minimum amount of points
required to get a credit. These points can be get by solving assigned exercises. required to get a credit. These points can be acquired by solving assigned
To visually show users if they already have enough points, ReCodEx groups exercises. To show users whether they already have enough points, ReCodEx also
supports setting this limit. There are two equal ways how to set a limit -- supports setting this limit for individual groups. There are two equal ways how
absolute value or relative value to maximum. The latter way seems nicer, so it to set a limit -- absolute value or relative value to maximum. The latter way
is implemented. The relative value is set in percents and is called threshold. seems nicer, so it is implemented. The relative value is set in percents and is
called threshold.
Our university has a few partner grammar schools. There were an idea, that they
Our university has a few partner grammar schools. There was an idea, that they
could use CodEx for teaching informatics classes. To make the setup simple for could use CodEx for teaching informatics classes. To make the setup simple for
them, all the software and hardware would be provided by the university as a them, all the software and hardware would be provided by the university as a
completely ready-to-use remote service. However, CodEx were not prepared to completely ready-to-use remote service. However, CodEx is not prepared for this
support this kind of usage and no one had time to manage a separate instance. kind of usage and no one has the time to manage a separate instance. With
With ReCodEx it is possible to offer hosted environment as a service to other ReCodEx it is possible to offer hosted environment as a service to other
subjects. The concept we figured out is based on user and group separation subjects.
inside the system. There are multiple _instances_ in the system, which means
unit of separation. Each instance has own set of users and groups, exercises can The concept we came up with is based on user and group separation inside the
be optionally shared. Evaluation backend is common for all instances. To keep system. There are multiple _instances_ in the system, which means unit of
track of active instances and paying customers, each instance must have a valid separation. Each instance has own set of users and groups, exercises can be
optionally shared. Evaluation backend is common for all instances. To keep track
of active instances and paying customers, each instance must have a valid
_licence_ to allow users submit their solutions. licence is granted for defined _licence_ to allow users submit their solutions. licence is granted for defined
period of time and can be revoked in advance if the subject do not keep approved period of time and can be revoked in advance if the subject do not keep approved
terms and conditions. terms and conditions.
The main work for the system is to evaluate programming exercises. The exercise The primary task of the system is to evaluate programming exercises. The
is quite similar to homework assignment during school labs. When a homework is exercise is quite similar to homework assignment during school labs. When a
assigned, two things are important to know for users: homework is assigned, two things are important to know for users:
- description of the problem - description of the problem
- metadata -- when and whom to submit solutions, grading scale, penalties, etc. - metadata -- when and whom to submit solutions, grading scale, penalties, etc.

Loading…
Cancel
Save