Menu

Tree [fb03c8] main /
 History

HTTPS access


File Date Author Commit
 data 2024-07-14 Ivan Golubev Ivan Golubev [1253e8] Changed format of output JSON
 model 2024-07-14 Ivan Golubev Ivan Golubev [024a35] Improve the model
 templates 2024-07-06 Ivan Golubev Ivan Golubev [b99b32] First version of API
 .gitignore 2024-07-06 Ivan Golubev Ivan Golubev [e5e17d] Added missing directory
 README.md 2024-07-14 Ivan Golubev Ivan Golubev [53ba99] Changed format of output JSON
 app.py 2024-07-14 Ivan Golubev Ivan Golubev [fb03c8] Improve the model
 requirements.txt 2024-07-12 Ivan Golubev Ivan Golubev [9a9e42] Added openpyxl to requirements.txt
 test_data.xlsx 2024-07-14 Ivan Golubev Ivan Golubev [7702f2] Correct test_data.xlsx

Read Me

Description

This API predicts number of failing grades on the exam.

Deploy: https://grad-api.onrender.com/ (API is hosted via https://render.com/)

Required data format

XLSX file with the following columns (data is mainly unloaded from 1C):

hash Номер ЛД Уровень подготовки Учебная группа Специальность/направление Учебный год Полугодие Дисциплина Оценка (без пересдач) Оценка (успеваемость)
### 1 Академический бакалавр БИВТ-20-1 Информатика и вычислительная техника 2020 - 2021 I полугодие История зачтено зачтено
### 1 Академический бакалавр БИВТ-20-1 Информатика и вычислительная техника 2020 - 2021 II полугодие Иностранный язык Удовлетворительно Удовлетворительно
### 1 Академический бакалавр БИВТ-20-1 Информатика и вычислительная техника 2022 - 2023 I полугодие Теория графов Неудовлетворительно Хорошо
### 1 Академический бакалавр БИВТ-20-1 Информатика и вычислительная техника 2022 - 2023 II полугодие Сетевые технологии Неявка Отлично
### 2 Специалист СГД-23-4 Горное дело 2023-2024 I полугодие Геодезия Неявка Удовлетворительно

API response

JSON file like this:

{'1': [{'Ожидаемое число двоек': 0,
              'Полугодие': 'I полугодие',
              'Учебный год': 22},
             {'Ожидаемое число двоек': 0,
              'Полугодие': 'II полугодие',
              'Учебный год': 22},
             {'Ожидаемое число двоек': 0,
              'Полугодие': 'I полугодие',
              'Учебный год': 23}],
 '2': [{'Ожидаемое число двоек': 0,
              'Полугодие': 'I полугодие',
              'Учебный год': 22},
             {'Ожидаемое число двоек': 0,
              'Полугодие': 'II полугодие',
              'Учебный год': 22}],
 '3': [{'Ожидаемое число двоек': 1,
              'Полугодие': 'I полугодие',
              'Учебный год': 22},
             {'Ожидаемое число двоек': 0,
              'Полугодие': 'II полугодие',
              'Учебный год': 22}]}

Functional Testing Instructions

Basic Behaviour

Get the main page of API:

curl https://grad-api.onrender.com/

Post the request (you have to send XLSX file with students grades):

curl --location 'https://grad-api.onrender.com/' --form 'file=@"<PATH_TO_YOUR_XLSX_DATAFILE>"' | python -c "import sys, json; print(json.load(sys.stdin))"

Handling Errors

404 error is generated when a request is made to a non-existent page:

curl https://grad-api.onrender.com/some-non-existent-page

400 error is generated when sending non-XLSX file:

curl --location 'https://grad-api.onrender.com/' --form 'file=@"<PATH_TO_YOUR_NON_XLSX_DATAFILE>"'

400 error is generated when user do not attach any file:

curl -X POST --location 'https://grad-api.onrender.com/'

400 error is generated when sending XLSX file but with wrong data format:

curl --location 'https://grad-api.onrender.com/' --form 'file=@"<PATH_TO_YOUR_WRONG_FORMAT_DATAFILE>"'
MongoDB Logo MongoDB