mirror of
https://codeberg.org/Mo8it/AdvLabDB.git
synced 2024-12-20 23:41:20 +00:00
410 lines
16 KiB
HTML
410 lines
16 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 transfered 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 experession 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>
|
|
|
|
<!-- TODO
|
|
<h4 id="part">Part</h4>
|
|
<p></p>
|
|
|
|
<h4 id="assistant">Assistant</h4>
|
|
<p></p>
|
|
|
|
<h4 id="admin">Admin</h4>
|
|
<p></p>
|
|
|
|
<h4 id="user">User</h4>
|
|
<p></p>
|
|
|
|
<h4 id="program">Program</h4>
|
|
<p></p>
|
|
|
|
<h3 id="import">Import</h3>
|
|
<p></p>
|
|
|
|
<h3 id="actions">Actions</h3>
|
|
<p></p>
|
|
|
|
<h3 id="analysis">Analysis</h3>
|
|
<p></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>
|
|
|
|
<!-- TODO
|
|
<h2>How-Tos</h2>
|
|
<h3>Start a new semester</h3>
|
|
<p></p>
|
|
-->
|
|
|
|
<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>
|