mirror of
https://codeberg.org/Mo8it/AdvLabDB.git
synced 2024-12-20 23:41:20 +00:00
489 lines
19 KiB
HTML
489 lines
19 KiB
HTML
<h2>Welcome</h2>
|
|
<p>Welcome to the administration part of AdvLabDB.</p>
|
|
|
|
<p>
|
|
Disclaimer: The database design behind AdvLabDB with its tables is not trivial.
|
|
But it should be very efficient after understanding it because it follows database design patterns to avoids duplications.
|
|
</p>
|
|
|
|
<p>
|
|
Some tables like <a href="#part_student">Part Student</a> and <a href="#group_experiment">Group Experiment</a> are not intuitive at the first moment.
|
|
The table <a href="#part_student">Part Student</a> for example can be confused with the table <a href="#student">Student</a>.
|
|
Therefore, please <strong>read this documentation</strong> to understand all terms and relationships and familiarize yourself with this web interface.
|
|
</p>
|
|
|
|
|
|
<p>
|
|
In the first section, menu items are explained.
|
|
You can find some "How-To"s in the second chapter.
|
|
</p>
|
|
|
|
<h2>Menu items</h2>
|
|
<p>In this section, you will find explanations to each menu item on the upper navigation bar.</p>
|
|
|
|
<h3 id="home">Home</h3>
|
|
<p>
|
|
This is your home page.
|
|
Here, you find a table with the number of <strong>missing</strong> experiment marks for every assistant in your <a href="#active_semester">active semester</a>.
|
|
Assistants without missing experiment marks are not showed in the table.
|
|
</p>
|
|
|
|
<h3>Tables</h3>
|
|
<p>In this dropdown menu, you can find all tables of the database that you can administrate.</p>
|
|
|
|
<h4 id="student">Student</h4>
|
|
<p>
|
|
This table contains all students in the database, not only those in your <a href="#active_semester">active semester</a>.
|
|
</p>
|
|
|
|
<p>You can use the search bar at the top to search for a student by name or email address</p>
|
|
|
|
<p>
|
|
The table shows the <a href="#part_student">part students</a> of a student.
|
|
</p>
|
|
|
|
<p>You only have to create a student record in this table if the student is not in the database yet.</p>
|
|
|
|
<h5>Create/Edit</h5>
|
|
<ul>
|
|
<li>The student number is the number assigned to a student from the university (Martikelnummer in German).</li>
|
|
<li>The uni email is the email address from the university.</li>
|
|
<li>
|
|
The contact email is an optional email address that is preferred by the student.
|
|
If the uni and contact email are equal, only the uni email is stored.
|
|
</li>
|
|
<li>You can optionally enter the topic and work group of the student's bachelor thesis</li>
|
|
<li>The note field is free for you to enter any notes related to this student.</li>
|
|
</ul>
|
|
|
|
<h4 id="part_student">Part Student</h4>
|
|
<p>
|
|
This table shows all part student in your <a href="#active_semester">active semester</a>.
|
|
</p>
|
|
|
|
<p>
|
|
A part student is a <a href="#student">student</a> that is doing a <a href="#part">part</a> ("BS1"/"Bachelor of Science 1" for example).
|
|
</p>
|
|
|
|
<p>
|
|
Lets say the student Max is doing his second lab practicum in his bachelor of science program (part 2 in BS).
|
|
Max would have only one record in the table <a href="#student">Student</a> anyway.
|
|
Lets call the part of the first practicum "BS1" and that of the second practicum "BS2".
|
|
He should have a Part Student record with the part "BS1", but he needs a second record for the part "BS2" now.
|
|
Therefore, you would create a new Part Student record that refers to the Student record and part "BS2".
|
|
</p>
|
|
|
|
<p>
|
|
You can put Max in an existing <a href="#group">group</a> or create one containing him later.
|
|
The group has to be compatible with the part!
|
|
</p>
|
|
|
|
<p>The table also shows the experiment marks of the student in this part.</p>
|
|
|
|
<p>
|
|
Every part student has a final part mark shown in this table.
|
|
The final part mark is calculated as explained in <a href="#semester_experiment">Semester Experiment</a>.
|
|
Normally, this final part mark is the one relevant for the transcript of records of students.
|
|
</p>
|
|
|
|
<h4 id="group">Group</h4>
|
|
<p>
|
|
This table shows all groups in your <a href="#active_semester">active semester</a>.
|
|
</p>
|
|
|
|
<p>
|
|
A group contains multiple <a href="#part_student">part students</a> that do <a href="#group_experiment">group experiments</a> together.
|
|
</p>
|
|
|
|
<h5>Conditions</h5>
|
|
<ul>
|
|
<li>A group can not be empty.</li>
|
|
<li>
|
|
The <a href="#part">part</a> of all <a href="#part_student">part students</a> in a group must have the same <a href="#program">program</a> which will be the program of the group.
|
|
</li>
|
|
<li>
|
|
Every group has a unique set of <a href="#program">program</a> and number (BS and 1 for example) in a semester.
|
|
Both are assigned automatically on creation.
|
|
</li>
|
|
<li>
|
|
A <a href="#part_student">part student</a> has to be in a group to be able to do experiments.
|
|
But a student can be alone in a group.
|
|
</li>
|
|
</ul>
|
|
|
|
<h4 id="group_experiment">Group Experiment</h4>
|
|
<p>
|
|
This table shows all group experiments in your <a href="#active_semester">active semester</a>.
|
|
</p>
|
|
|
|
<p>
|
|
A group experiment is a <a href="#semester_experiment">semester experiment</a> that is done by a <a href="#group">group</a>.
|
|
</p>
|
|
|
|
<p>
|
|
This table also shows the related experiment marks of the <a href="#part_student">part students</a> in the related <a href="#group">group</a>.
|
|
</p>
|
|
|
|
<p>
|
|
The column "Experiment Marks Missing" is automatically set to true if all related experiment marks are set by the assistant(s) of the related <a href="#semester_experiment">semester experiment</a>.
|
|
</p>
|
|
|
|
<p>
|
|
After creating a group experiment, an <a href="#experiment_mark">experiment mark</a> is created for every <a href="#part_student">part student</a> in the related <a href="#group">group</a>.
|
|
But an <a href="#experiment_mark">experiment mark</a> can be created manually if needed.
|
|
</p>
|
|
|
|
<h5>Create</h5>
|
|
<ul>
|
|
<li>
|
|
Choose a group and a semester experiment from your <a href="#active_semester">active semester</a>.
|
|
</li>
|
|
<li>
|
|
You can additionally directly add two <a href="#appointment">appointments</a> for this group experiment.
|
|
But you can also create <a href="#appointment">appointments</a> manually later in the <a href="#appointment">Appointment</a> table.
|
|
</li>
|
|
<li>
|
|
You can add an optional note to the group experiment, but this note is primarily meant for assistants that are responsible for the related <a href="#semester_experiment">semester experiment</a> to add their notes to this group experiment ("Protocol was submitted" for example).
|
|
</li>
|
|
</ul>
|
|
|
|
<h4 id="appointment">Appointment</h4>
|
|
<p>
|
|
This table shows all appointments in your <a href="#active_semester">active semester</a>.
|
|
</p>
|
|
|
|
<p>
|
|
You can create an appointment for a <a href="#group_experiment">group experiment</a> by specifying a date which can be changed by the assistant(s) of the related <a href="#semester_experiment">semester experiment</a> after communicating with the students.
|
|
The date is only a first proposal.
|
|
</p>
|
|
|
|
<p>
|
|
A "special" appointment means that the students prefer the appointment to be in the non-lecture period of the semester.
|
|
This is not enforced internally.
|
|
</p>
|
|
|
|
<p>
|
|
If the related <a href="#semester_experiment">semester experiment</a> only has one assistant, then this assistant is assigned automatically during creation.
|
|
Otherwise, you have to assign one responsible assistant.
|
|
</p>
|
|
|
|
<h4 id="experiment_mark">Experiment Mark</h4>
|
|
<p>
|
|
This table shows all experiment marks in your <a href="#active_semester">active semester</a>.
|
|
</p>
|
|
|
|
<p>
|
|
An experiment mark is assigned to a <a href="#part_student">part student</a> for one <a href="#group_experiment">group experiment</a>.
|
|
Although students work in groups, they get individual marks, not group marks.
|
|
</p>
|
|
|
|
<p>
|
|
After creating a <a href="#group_experiment">group experiment</a>, an experiment mark is created for every <a href="#part_student">part student</a> in the related <a href="#group">group</a>.
|
|
But an experiment mark can be created manually if needed.
|
|
</p>
|
|
|
|
<p>
|
|
Experiment marks consist of oral and protocol marks and are assigned by the responsible assistant(s).
|
|
But admins can change marks, too.
|
|
The columns "Assistant" and "Admin" keep track of the last assistant or admin that changed the experiment mark.
|
|
</p>
|
|
|
|
<p>
|
|
The column "Final Experiment Mark" shows the automatically calculated student's final mark for this experiment.
|
|
This mark is calculated with respect to the weights of the related <a href="#semester_experiment">semester experiment</a>.
|
|
</p>
|
|
|
|
<h4 id="experiment">Experiment</h4>
|
|
<p>This table shows all experiments, not only in your active semester.</p>
|
|
|
|
<p>
|
|
Experiments that are marked as "active" will be present in new semesters.
|
|
Make sure to active/deactivate experiments before creating a new semester.
|
|
</p>
|
|
|
|
<h4 id="semester_experiment">Semester Experiment</h4>
|
|
<p>This table shows the semester experiments in your active semester.</p>
|
|
|
|
<p>
|
|
A semester experiment is an <a href="#experiment">experiment</a> that takes place in a specific <a href="#semester">semester</a>.
|
|
</p>
|
|
|
|
<p>
|
|
Assistants and mark weightings are assigned to these semester experiments.
|
|
These assignments are transferred to the next semester if the related <a href="#experiment">experiment</a> was active before creating the new semester.
|
|
</p>
|
|
|
|
<p>Mark weightings consist of oral, protocol and final weightings.</p>
|
|
|
|
<p>
|
|
The oral weighting and protocol weightings are between 0 and 1 and have to add up to 1.
|
|
By default, these weightings should both be 0.5, but you can for example have an oral weighting of 0.25 and a protocol weighting of 0.75.
|
|
</p>
|
|
|
|
<p>
|
|
The final weighting has to be a value between 0 and 1.
|
|
By default, its value should be 1.
|
|
But you can choose a value lower than 1 in case an experiment is easier than others.
|
|
</p>
|
|
|
|
<p>
|
|
The final part mark for a student is calculated by summing the following expression over <code>i</code> and then dividing through the sum of <code>f_i</code>:
|
|
</p>
|
|
|
|
<p>
|
|
<code>f_i * (ow_i * o_i + pw_i * p_i)</code>
|
|
</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<code>i</code> is the index of a semester experiment.
|
|
The sum over <code>i</code> is done only over the semester experiments that a student has in that part.
|
|
</li>
|
|
<li>
|
|
<code>f_i</code> is the final part mark for the semester experiment <code>i</code>.
|
|
</li>
|
|
<li>
|
|
<code>ow_i</code> is the oral weighting.
|
|
</li>
|
|
<li>
|
|
<code>o_i</code> is the oral mark.
|
|
</li>
|
|
<li>
|
|
<code>pw_i</code> is the protocol weighting.
|
|
</li>
|
|
<li>
|
|
<code>p_i</code> is the protocol mark.
|
|
</li>
|
|
</ul>
|
|
|
|
<p>
|
|
The result after the division is rounded to an integer using the "round half up" strategy.
|
|
This means that <code>x.5</code> is always rounded up to <code>x+1</code>.
|
|
Values between <code>x.5</code> and <code>x+1</code> (closed interval) are rounded up to <code>x+1</code>.
|
|
Values higher than <code>x</code> and lower than <code>x.5</code> are rounded down to <code>x</code>.
|
|
</p>
|
|
|
|
<p>
|
|
In case you change the weightings during a semester (some marks are already set), all part and experiment marks will be automatically updated.
|
|
</p>
|
|
|
|
<h4 id="semester">Semester</h4>
|
|
<p>This table shows all semesters.</p>
|
|
|
|
<p>
|
|
Before creating a new semester, make sure to read all notes in the form that shows up after pressing the "Create" button.
|
|
</p>
|
|
|
|
<p>
|
|
You can and should set a semester as "done" by clicking on the edit button near that semester, then clicking the "done" checkbox and then "Save".
|
|
</p>
|
|
|
|
<p>
|
|
Setting a semester as done prevents assistants from changing or even seeing marks in this semester.
|
|
Setting a semester as done sets older semesters as done, too.
|
|
Only set a semester as done if all marks in that semester and all previous semesters are already set.
|
|
</p>
|
|
|
|
<h4 id="part">Part</h4>
|
|
<p>This table shows the parts in your active semester.</p>
|
|
|
|
<p>
|
|
A part consists of a <a href="#program">program</a>, a <a href="#semester">semester</a> and a number.
|
|
For example, if students in the bachelor of science program (BS) must absolve two lab courses, then you would have the parts BS1 and BS2.
|
|
But maybe the university only offers part BS2 every second semester.
|
|
Therefore, a part is coupled to a semester.
|
|
</p>
|
|
|
|
<h4 id="assistant">Assistant</h4>
|
|
<p>This table shows all assistants.</p>
|
|
|
|
<p>
|
|
To deactivate an assistant, you have to deactivate their <a href="#user">user</a> account.
|
|
</p>
|
|
|
|
<p>
|
|
You can assign <a href="#semester_experiment">semester experiments</a> to assistants either in this table or in the semester experiments table.
|
|
</p>
|
|
|
|
<h4 id="admin">Admin</h4>
|
|
<p>This is a read only table that shows current admins.</p>
|
|
|
|
<h4 id="user">User</h4>
|
|
<p>This table shows all users.</p>
|
|
|
|
<p>A user can have either an admin or assistant role (or both).</p>
|
|
|
|
<p>
|
|
Make sure to deactivate users if they don't require access to the database anymore.
|
|
Deactivated users can't login anymore.
|
|
</p>
|
|
|
|
<p>
|
|
Further details can be read under <a href="#user_settings">User settings</a>.
|
|
</p>
|
|
|
|
<h4 id="program">Program</h4>
|
|
<p>This table shows all programs.</p>
|
|
|
|
<p>
|
|
A program is a university program.
|
|
You can for example have the programs BS for bachelor of science, BE for bachelor of education, MS for master of science and so on.
|
|
It is recommended to choose short labels for programs.
|
|
</p>
|
|
|
|
<h3 id="import">Import</h3>
|
|
<p>
|
|
Allows you to import data for your active semester from a file.
|
|
Visit the importing page for more information.
|
|
</p>
|
|
|
|
<h3 id="actions">Actions</h3>
|
|
<p>
|
|
Run one or multiple actions like creating a database backup.
|
|
The available actions should be explained on the page.
|
|
</p>
|
|
|
|
<h3 id="analysis">Analysis</h3>
|
|
<p>
|
|
Run an analysis and plot the results.
|
|
More information on the page itself.
|
|
</p>
|
|
|
|
<h3 id="docs">Docs</h3>
|
|
<p>This is a link which leads you to this page.</p>
|
|
|
|
<h3 id="user_settings">User settings</h3>
|
|
<p>
|
|
In the user settings, You can change your active semester, user information and password.
|
|
Don't forget to click on <em>Save</em> after changing any option.
|
|
</p>
|
|
|
|
<h4 id="active_semester">Active semester</h4>
|
|
<p>
|
|
An active semester is the semester you are working in.
|
|
All shown experiment marks and appointments are in your active semester.
|
|
By default as a new assistant, your active semester should be the latest semester.
|
|
</p>
|
|
<p>
|
|
If you see a warning that you are in an old semester, then you should change your active semester in the user settings.
|
|
You should only work in an old semester if there are still experiment marks to be set in the old semester.
|
|
</p>
|
|
|
|
<h4>User information</h4>
|
|
<p>
|
|
Make sure that the fields <em>Phone Number</em>, <em>Mobile Phone Number</em>, <em>Building</em> and <em>Room</em> are filled and up to date, especially if you are a new assistant.
|
|
</p>
|
|
|
|
<h4>Password</h4>
|
|
<p>
|
|
You can generate a new random password by checking the corresponding checkbox and then clicking on <em>Save</em>.
|
|
You will be then logged out.
|
|
Your new password is displayed above the login fields.
|
|
Make sure that you save the password in a safe place.
|
|
Using a free open source password manager like <a href="https://bitwarden.com/" target="_blank" rel="noopener">Bitwarden</a> or <a href="https://keepassxc.org/" target="_blank" rel="noopener">KeepassXC</a> is recommended.
|
|
</p>
|
|
<p>If you forget your password, you can reset it using the CLI on the server.</p>
|
|
|
|
<h2>How-Tos</h2>
|
|
<h3>Start a new semester</h3>
|
|
<p>Here is a list of tables that one has to visit when creating a new semester:</p>
|
|
|
|
<ol>
|
|
<li>
|
|
Program: Make sure that the programs are up to date. Usually, you will only create new programs when first creating the database for the first time.
|
|
</li>
|
|
<li>
|
|
User: Create a user for every new assistants.
|
|
Old assistants should already be in the database, just make sure that their users are activated.
|
|
</li>
|
|
<li>
|
|
Experiment: Create possibly new experiments.
|
|
Old experiments should already be in the database, just make sure that they are activated.
|
|
</li>
|
|
<li>
|
|
Semester: Create a new semester.
|
|
Read the notes in the form for creating a semester.
|
|
Possibly set old semester as done.
|
|
</li>
|
|
<li>
|
|
Part: The parts from the last semester should be duplicated in the new semester (if you don't uncheck the checkbox "Transfer parts" on creating a new semester).
|
|
You can add or remove a part from the new semester if required.
|
|
</li>
|
|
<li>
|
|
Semester Experiment: Semester experiments should be duplicated in the new semester (if you don't uncheck the checkbox "Transfer experiments" on creating a new semester).
|
|
Make sure that all are present.
|
|
Possibly create new ones.
|
|
Check the assigned assistants and possibly assign new ones or reassign old ones.
|
|
</li>
|
|
<li>
|
|
Import: Skip the next steps if you want to use the import functionality.
|
|
In that case, create an import file and import it.
|
|
Check that everything is imported correctly afterwards.
|
|
</li>
|
|
<li>Student: Add students that are new to the database.</li>
|
|
<li>Part Student: Add part students for all students that are doing a part in this semester.</li>
|
|
<li>Group: Create groups for part students.</li>
|
|
<li>
|
|
Group Experiment: Create new group experiments to assign semester experiments to groups.
|
|
The form allows you to directly add up to two appointments.
|
|
</li>
|
|
<li>Appointment: Check appointments and possibly add missing ones.</li>
|
|
</ol>
|
|
|
|
<h3>Tables</h3>
|
|
|
|
<h4>Create a record</h4>
|
|
<p>
|
|
You can create a record in almost all tables.
|
|
To do so, click on the "Create" button at the top of a table.
|
|
Then, fill the form and click on the "Save" button.
|
|
Required fields are marks with a red star near their label.
|
|
</p>
|
|
|
|
<h4>Edit a record</h4>
|
|
<p>
|
|
You can edit records of almost all tables.
|
|
To do so, click on the pen symbol on the left of a record.
|
|
Then, fill the form and click on the "Save" button.
|
|
Required fields are marks with a red star near their label.
|
|
</p>
|
|
|
|
<h4>Show record details</h4>
|
|
<p>
|
|
Almost all tables have an eye symbol near a record which shows details for that record.
|
|
Some fields in this view are not shown in the table itself for horizontal space reasons.
|
|
</p>
|
|
|
|
<h4>Delete records</h4>
|
|
<p>
|
|
Almost all tables have a trash can symbol near records to delete them.
|
|
Deleting a record is not recommended and often not possible because of database dependencies.
|
|
If you really want to delete a record, then try to delete it by clicking on the trash can symbol.
|
|
If you get any errors related to some dependency, then delete dependent records when you are sure about it and then try to delete the record again.
|
|
</p>
|
|
|
|
<h4>Go to record</h4>
|
|
<p>
|
|
If a record in a table contains records of other tables, then these records are highlighted as a link.
|
|
Clicking on a record link takes you to its details.
|
|
You can edit this record then by clicking on the edit button at the top if needed.
|
|
</p>
|
|
|
|
<h4>Sort by column</h4>
|
|
<p>
|
|
You can sort a table by a column by clicking on the column label if it is highlighted as a link.
|
|
Clicking on the column label again sorts in descending order.
|
|
</p>
|
|
|
|
<h4>Apply table filter</h4>
|
|
<p>
|
|
Some tables have filters.
|
|
Those table have a "Add Filter" button at the top which allows you to choose a filter to apply.
|
|
</p>
|
|
<p>You can apply multiple filters at once!</p>
|
|
|
|
<h4>Export table</h4>
|
|
<p>
|
|
Most tables can be exported. Those tables have an "Export button" at the top which exports the table as a CSV file.
|
|
</p>
|
|
<p>Exporting a table respects the applied filters.</p>
|