This repository has been archived on 2023-12-11. You can view files and clone it, but cannot push or open issues or pull requests.
ib-clearance/README.md

57 lines
3.0 KiB
Markdown
Raw Normal View History

2018-10-23 17:10:40 +02:00
# ib-clearance
2018-10-23 16:54:28 +02:00
2019-01-06 10:11:45 +01:00
ib-clearance is a program which helps schools manage the entrance and exiting of their IB Diploma Program students. Due to the unique nature of IB students' timetables, the program helps to automatically check individual timetables and give clearance to students who have finished for the day.
2018-10-23 16:54:28 +02:00
2019-01-11 15:06:35 +01:00
## Building & running
2018-10-23 16:54:28 +02:00
2019-01-11 15:06:35 +01:00
The code is currently designed to run on Python 3.6.* and requires the [`getch`](https://pypi.org/project/getch/) module on platforms other than Windows.
2018-11-03 10:07:26 +01:00
2019-01-11 15:06:35 +01:00
Binaries can be built using [`pyinstaller`](https://pypi.org/project/PyInstaller/): `pyinstaller --onefile ib-clearance.py`
2018-11-03 10:07:26 +01:00
2018-12-01 08:35:07 +01:00
## Database specification
2019-01-11 15:06:35 +01:00
The program requires a SQLite database `database.db` in the working directory, containing data for all school classes.
2018-12-01 08:35:07 +01:00
`database.db` must contain:
2018-12-01 08:35:07 +01:00
| Table | Description |
| ----------- | ------------------------------------------------------------ |
| `students` | Contains students' names, ID numbers and subject preferences |
| `timetable` | Timetable information (lessons) |
2018-12-01 08:35:07 +01:00
### `students`
| 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 |
2018-12-01 08:35:07 +01:00
### `timetable`
| 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`) |
2018-12-01 08:35:07 +01:00
#### Subject IDs
Subject IDs may be anything, as long as consistency is maintained throughout the tables.
2018-11-03 10:07:26 +01:00
2018-10-23 16:54:28 +02:00
## License
2019-01-23 20:34:39 +01:00
ib-clearance is made available under the Apache License 2.0.
2019-01-11 23:31:38 +01:00
Copyright (C) 2019 Abdulkadir Furkan Şanlı
2018-10-23 17:10:40 +02:00
2019-01-23 20:34:39 +01:00
Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without any warranty.