Skip to content

Программа для распределения мест на лабораторных работах

License

Notifications You must be signed in to change notification settings

artaka/Fairturn

Repository files navigation

Caution

Проект находится в стадии разработки и предназначен для образовательных целей.


Описание

Fairturn — это приложение, созданное для справедливого распределения очередности сдачи лабораторных работ. Оно устраняет субъективность при распределении приоритетов, предоставляя возможность автоматического управления очередью на основе объективных критериев.

Приложение идеально подходит для преподавателей и студентов, помогая сделать процесс сдачи лабораторных работ максимально прозрачным и удобным.
Для использования нашей программы:

  • Один из участников группы или подгруппы создает веб-таблицу в Excel и предоставляет доступ для редактирования всем, у кого есть ссылка.
  • Все члены группы заполняют таблицу своими данными.
  • После заполнения таблицы ответственный участник запускает Fairturn.exe.
  • Программа автоматически обработает данные и сформирует окончательный список.

Посмотрите, как работает программа: Видео работы программы.

Инструкции по установке и использованию приведены ниже.

Основные цели

  • Упрощение процесса сдачи лабораторных работ.
  • Обеспечение равенства участников.
  • Исключение субъективных факторов при определении очередности.

Основные функции

  • Импорт данных из веб-таблиц для автоматизации ввода.
  • Ручной ввод данных для более гибкого управления.
  • Сортировка участников по количеству выполненных лабораторных работ.
  • Чтение и запись данных в файлы для удобного хранения и обмена.
  • Интеграция с Google Sheets через Python-скрипты.
  • Простое меню для быстрого доступа к функциональности.

Установка и использование

  1. Скачайте релиз:
    • Загрузите последнюю версию архива из раздела GitHub Releases
  2. Распакуйте файлы:
    • Распакуйте архив в удобную директорию.

Получение токена

Шаг 1. Создание проекта в Google Cloud Console

  1. Перейдите на Google Cloud Console.
  2. Войдите в свою Google учётную запись.
  3. Создайте новый проект:

Шаг 2. Включение необходимых API

  1. Перейдите в раздел APIs & ServicesLibrary.
  2. Найдите и включите нужные API:
    • Google Sheets API.
    • Нажмите Enable для каждого API.

Шаг 3. Настройка экрана согласия (OAuth Consent Screen)

  1. Перейдите в APIs & ServicesOAuth consent screen.
  2. Настройте параметры:
    • User Type: Выберите External.
    • Укажите:
      • Application Name: Имя вашего приложения.
      • Email: User support email и Developer contact information.
      • Test users: когда вы будете на 3 шаги добавьте свою почту в Test users
  3. Нажмите Save and Continue.

Шаг 4. Создание OAuth Client ID

  1. Перейдите в APIs & ServicesCredentials.
  2. Нажмите Create CredentialsOAuth client ID.
  3. Укажите:
    • Application Type: Выберите Desktop Application.
    • Дайте приложению имя (например, "My Desktop App").
  4. Нажмите Create.
  5. Скачайте файл credentials.json:
    • После создания клиента появится окно с данными.
    • Нажмите Download JSON.
    • Сохраните файл в папку приложения(которая находится в Releases) и переименуйте его в credentials.json. Должна получится структура, как на фото.
    • Посмотреть фото

Шаг 5. Настройка консольного приложения

  1. Запустите файл forpython.bat и следуйте инструкциям в окне. Этот файл проверит:
    • Установку Python.
    • Установку всех необходимых библиотек.
  2. После завершения запустите Python-скрипт tok.py:
    • Можно через консоль или редактор кода (как вам удобнее).
  3. Вас перекинет на страницу Google, где:
    • Выберите аккаунт, с которым создавался токен.
    • Предоставьте доступ приложению.
  • Если у вас появилась в google надпись The authentication flow has completed. You may close this window. - значит всё прошло успешно и в директорию проекта добавился файл token.pickle

Шаг 6. Работа с приложением

  1. Запустите Fairturn.exe.
  2. Пользуйтесь приложением! 🎉

Архитектура проекта

Проект состоит из нескольких независимых модулей, что позволяет легко изменять или добавлять новый функционал.

Основные модули

  • parserIN: Извлечение данных из веб-таблиц.
  • parserOUT: Запись данных из файла в веб-таблицу.
  • ranging: Сортировка участников по заданным критериям.
  • input: Модуль для ручного ввода данных.
  • writeToFile: Сохранение данных в файл.
  • inputFromFile: Чтение данных из файла.
  • logo: Отображение логотипа программы.
  • menu: Основное меню программы.
  • sorting: Вывод отсортированных данных.

Тестирование

Каждый модуль протестирован на различных сценариях ввода и вывода данных.

Результаты тестов

  • Корректное выполнение всех функций.
  • Работа с большими объёмами данных.
  • Полная совместимость с Python 3.10+ и компиляторами C++ (GCC, Clang, MSVC).

Лицензия

Этот проект распространяется под лицензией Apache License 2.0.
Подробнее можно ознакомиться с лицензией по следующей ссылке: Apache License 2.0.

About

Программа для распределения мест на лабораторных работах

Resources

License

Stars

Watchers

Forks

Packages

No packages published