ikoOSKAR (iko Ortak Sınav Karma Sistemi) allows you to easily manage your school's student placement schemes for exams. This program is especially targeted for high schools. Check out the official website for ikoOSKAR!
With ikoOSKAR you can:
- Create student placement schemes with minimum same-grade student interaction
- Get placement schemes for each classroom / exam hall
- Create the list of students' exam places (the classroom / exam hall and the desk number) for each class / section, respectively
- Prevent students from cheating in exams
- Easily manage the student database
- View and manipulate each class / section
- Add hundreds of new students to the database at once; just select the spreadsheet file exported from e-okul or create your own xlsx file.
- Add, edit or remove individual students
- Update all students' grade informations at the end of each academic year, with
just one click.
- This action also assumes that every 12th grade student have graduated and proceeds to delete every 12th grade student from the database
- View and edit older schemes, grouped by date
This project is a reimplementation of ikoOSKAR which was originally written in C# and .Net Framework.
C++17 and Qt Framework 6.x are being used for this reimplementation, which makes the program cross-platform and also more efficient.
The code formatter of choice is clang-format
with -style=webkit
styling
option.
doxygen
is being used for the auto-generated and auto-deployed documentations,
with the configurations in this file, using
this script.
- Qt Creator (optional but highly recommended)
- Qt Framework >= 6.2
- Compiler: GCC (for Linux), MinGW-w64 (for Windows)
x86_64-w64-mingw32.static-cmake
package is required for cross compiling from Linux to Windows. The package is available on MXE and required by this cross-compiling script.
- libexpat
- CMake
- Ninja (optional)
- Code formatter (optional):
clang-format
- NSIS >= 3.0, for creating installers for Windows
x86_64-w64-mingw32.static-makensis
package is required when creating Windows installers from Linux. The package is available on MXE and required by this cross-compiling script.
- Internet connection for the first activation
- Any program that can open .xlsx files (e.g. LibreOffice, Gnumeric, WPS Office, MS Office)
This project consists of 4 layers:
- Data Access Layer (DAL for short): This is the layer which interacts with raw data; such as the database, the filesystem and the CloudAuth API
- Business Logic Layer (BLL for short): This is the layer which contains the program logic and interacts between the UI and the DAL
- User Interface Layer (UI for short) (aka Presentation Layer): This is the layer which handles all UI operations
- Shared Layer (aka Entities): This layer contains shared classes and information across all the other layers
For further information, check out the official documentation
You can see which class belongs to which layer in the tables below. Classes with direct relationship are represented at the same row. The Shared Layer is shown separately because its classes are used commonly among other classes and do NOT have a direct relationship with only one (or two) class(es).
You can click on the elements of the tables to navigate to the corresponding file/folder.
Shared |
---|
Student |
ExamStudent |
Desk |
DeskCoordinates |
Hall |
Pattern |
Scheme |
ikoOSKAR-Qt is licensed under the GNU General Public License version 3 or later.
[1] FreeXL, the library used by ikoOSKAR::DAL::MultiImport
to parse XLS and XLSX files, is licensed under the MPL tri-license terms.
The GPL v2.0+ is chosen for this project.
[2] libxlsxwriter, the library used by ikoOSKAR::BLL::SchemeExporter
, is licensed under a FreeBSD License.
[3] qt-collapsible-section, the code ikoOSKAR::UI::ExamWidget
based on, is licensed under the GNU Lesser General Public License version 3.