Implement extra (non-IB) subject support, update README.md and TODO.md

This commit is contained in:
Abdulkadir Furkan Şanlı
2019-01-06 10:04:44 +01:00
parent e8f51079d7
commit 1a309834af
3 changed files with 77 additions and 51 deletions

View File

@@ -1,6 +1,6 @@
# ib-clearance
ib-clearance is a program which helps schools manage the entrance and exiting of their IB students. Due to the unique nature of IB students' timetables, the program helps check individual timetables and give clearance to students who have finished for the day.
ib-clearance is a program which helps schools manage the entrance and exiting of their IBDP students. Due to the unique nature of IB students' timetables, the program helps check individual timetables and give clearance to students who have finished for the day.
## Building
@@ -10,44 +10,42 @@ I recommend building executables with `pyinstaller` with `pyinstaller --onefile
## Database specification
The program requires SQLite databases for each IB class.
The program requires a SQLite database `database.db` in the working directory, containing info for all classes.
Each database must contain:
`database.db` must contain:
| Table | Description |
| ----------- | ---------------------------------------------------------- |
| `students` | Contains students' names, ID numbers and class preferences |
| `timetable` | Timetable information for class |
| Table | Description |
| ----------- | ------------------------------------------------------------ |
| `students` | Contains students' names, ID numbers and subject preferences |
| `timetable` | Timetable information (lessons) |
### `students`
| Column | Data type | Description |
| ------ | --------- | --------------------------------- |
| `id` | `INTEGER` | Student ID number used in program |
| `g1` | `TEXT` | Group 1 subject ID |
| `g2` | `TEXT` | Group 2 subject ID |
| `g3` | `TEXT` | Group 3 subject ID |
| `g4` | `TEXT` | Group 4 subject ID |
| `g5` | `TEXT` | Group 5 subject ID |
| `g6` | `TEXT` | Group 6 subject ID |
| `name` | `TEXT` | Full name of student |
| Column | Data type | Description |
| --------------- | --------- | ----------------------------------------------- |
| `id` | `INTEGER` | Student ID number used in program |
| `student_class` | `INTEGER` | IB class number (e.g. `1`, `2`) |
| `name` | `TEXT` | Full name of student |
| `g1` | `TEXT` | Group 1 subject ID |
| `g2` | `TEXT` | Group 2 subject ID |
| `g3` | `TEXT` | Group 3 subject ID |
| `g4` | `TEXT` | Group 4 subject ID |
| `g5` | `TEXT` | Group 5 subject ID |
| `g6` | `TEXT` | Group 6 subject ID |
| `other` | `TEXT` | ID(s) of other class(es) taken, space seperated |
### `timetable`
| Column | Data type | Description |
| ----------- | --------- | --------------------------------------------- |
| `day` | `TEXT` | Day of the week (e.g. `monday`) |
| `end_time` | `TEXT` | Ending time of lesson (e.g. `09:55`, `13:05`) |
| `lesson_id` | `TEXT` | Subject ID of the lesson (e.g. `tok`) |
| Column | Data type | Description |
| -------------- | --------- | --------------------------------------------- |
| `lesson_class` | `INTEGER` | IB class which takes lesson (e.g. `1`) |
| `day` | `TEXT` | Day of the week (e.g. `monday`) |
| `end_time` | `TEXT` | Ending time of lesson (e.g. `09:55`, `13:05`) |
| `lesson_id` | `TEXT` | Subject ID of the lesson (e.g. `tok`) |
#### Subject IDs
Subject IDs may be anything, as long as consistency is maintained throughout the tables. There are two hard-coded IDs that are always taken by every student:
| Subject | ID |
| ------------------- | ----- |
| Theory of Knowledge | `tok` |
| Guidance | `gu` |
Subject IDs may be anything, as long as consistency is maintained throughout the tables.
## License