Fairturn

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

Основная концепция — устранение влияния личных качеств на приоритет в очереди, предоставляя преимущество тем, кто сдал меньше.

Цель проекта — создание прозрачной, объективной и равной системы для упрощения процесса сдачи.

Ознакомиться с кодом программы: тык

Сроки

Дата начала разработки: 25 Ноября 2024

Дата окончаения разработки: 9 Декабря 2024

Наша команда

Список требований в формате product backlog

Название Описание Приоритет Оценка(Story Points)
Парсер 1 Извлечение данных из web-таблицы и запись в файл. Ключевая задача 21
Парсер 2 Перенос данных из файла в web-таблицу. Ключевая задача 21
Алгоритм ранжирования Получение списка участников и их сортировка по количеству сданных работ. Ключевая задача 21
Ввод данных с клавиатуры Ручной ввод всех участников с последующим возвратом данных в контейнер. Высокий 13
Проверка установки Python и зависимостей Проверка наличия Python и необходимых библиотек через bat файл и установка недостающих компонентов. Высокий 13
Чтение из файла Чтение данных из файла (с указанным названием) и запись этих данных в контейнер. Высокий 13
Запись в файл Сохранение данных из контейнера в файл. Высокий 13
Логотип программы Отображение логотипа приложения при его запуске. Низкий 3
Меню программы Обеспечение доступа пользователя к основным функциям программы через меню. Средний 8
Вывод данных Вывод отсортированных данных с порядковыми номерами строк в консоль. Средний 5

Список пользовательских историй из product backlog

ID Пользовательская история
a-001 Как Пользователь, я хочу извлечь данные из web-таблицы и записать их в файл, чтобы иметь возможность использовать данные локально.
a-002 Как Пользователь, я хочу перенести данные из файла в web-таблицу, чтобы обновить таблицу с результатами.
a-003 Как Пользователь, я хочу получить список участников и отсортировать их по количеству сданных работ, чтобы установить справедливую очередь.
a-004 Как Пользователь, я хочу ввести список участников вручную и сохранить данные, чтобы использовать их в дальнейшей обработке.
a-005 Как Пользователь, я хочу проверить наличие Python и библиотек через bat-файл, чтобы обеспечить корректную работу программы.
a-006 Как Пользователь, я хочу считать данные из файла и сохранить их в контейнер, чтобы подготовить их для дальнейшей работы.
a-007 Как Пользователь, я хочу сохранить данные из контейнера в файл, чтобы обеспечить их сохранность.
a-008 Как Пользователь, я хочу видеть логотип программы при её запуске, чтобы убедиться в правильной работе приложения.
a-009 Как Пользователь, я хочу получить доступ к основным функциям программы через меню, чтобы удобно управлять её функционалом.
a-010 Как Пользователь, я хочу видеть отсортированные данные с порядковыми номерами строк в консоли, чтобы легко анализировать результаты

Диаграмма вариантов использования всех модулей

Диаграмма вариантов использования для модуля ручного ввода input:

Диаграмма вариантов использования для модуля записи данных в файл writeToFile:

Диаграмма вариантов использования для модуля чтения данных из файла inputFromFile:

Диаграмма вариантов использования для модуля отображения меню содержащего основные функции программы MENU:

Диаграмма вариантов использования для модуля отображения логотипа приложения при его запуске logo:

Диаграмма вариантов использования для модуля вывода отсортированных данных с порядковыми номерами строк в консоль WriteToConsole:

Диаграмма вариантов использования для модуля получения списка участников и их сортировка по количеству сданных лабораторных работ ranging:

Диаграмма вариантов использования для модуля извлечения данных из web-таблицы и записи их в файл parserIN:

Диаграмма вариантов использования для модуля переноса данных из файла в web-таблицу parserOUT:

Диаграмма вариантов использования для модуля проверки наличия Python и необходимых библиотек через bat файл и установки недостающих компонентов forpython:

Cписок пользовательских историй для каждого модуля и проекта в целом

Модуль 1: Парсер 1 - Извлечение данных из web-таблицы и запись в файл

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

2. Как пользователь, я хочу, чтобы данные из таблицы сохранялись в файл (например, CSV или Excel), чтобы их можно было легко использовать и делиться с другими.

Модуль 2: Парсер 2 - Перенос данных из файла в web-таблицу

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

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

Модуль 3: Алгоритм ранжирования - Получение списка участников и их сортировка по количеству сданных работx`

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

2. Как администратор, я хочу иметь возможность изменить критерии сортировки, чтобы в будущем можно было настроить алгоритм под новые условия.

Модуль 4: Ввод данных с клавиатуры - Ручной ввод всех участников с последующим возвратом данных в контейнер

1. Как пользователь, я хочу вручную вводить данные об участниках через клавиатуру, чтобы при необходимости можно было быстро добавить нового участника.

2. Как пользователь, я хочу, чтобы все введенные данные автоматически сохранялись в контейнер для дальнейшей обработки.

Модуль 5: Проверка установки - Проверка наличия Python и зависимостей через bat файл и установка недостающих компонентов

1. Как пользователь, я хочу, чтобы при первом запуске программы автоматически проверялась установка Python и необходимых библиотек, чтобы избежать ошибок из-за отсутствия зависимостей.

2. Как пользователь, я хочу, чтобы программа автоматически устанавливала недостающие компоненты, чтобы мне не нужно было вручную искать и устанавливать их.

Модуль 6: Чтение из файла - Чтение данных из файла (с указанным названием) и запись этих данных в контейнер

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

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

Модуль 7: Запись в файл - Сохранение данных из контейнера в файл

1. Как пользователь, я хочу иметь возможность сохранить данные, которые находятся в контейнере, в файл для последующего использования и обмена.

2. Как пользователь, я хочу иметь возможность выбрать формат файла для сохранения данных (например, CSV, TXT или Excel).

Модуль 8: Логотип программы - Отображение логотипа приложения при его запуске

1. Как пользователь, я хочу видеть логотип приложения при его запуске, чтобы понимать, что я использую правильное приложение.

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

Модуль 9: Меню программы - Обеспечение доступа пользователя к основным функциям

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

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

Модуль 10: Вывод данных с порядковыми номерами строк

1. Как пользователь, я хочу видеть вывод данных с указанием порядковых номеров строк, чтобы проще ориентироваться в большом объеме информации.

2. Как пользователь, я хочу иметь возможность сортировать или фильтровать данные по порядковому номеру, чтобы быстрее находить нужную информацию.

Истории для проекта в целом:

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

2. Как пользователь, я хочу, чтобы программа была интуитивно понятной и не требовала много времени на обучение.

3. Как пользователь, я хочу, чтобы программа поддерживала работу с разными типами данных, чтобы я мог использовать ее в разных случаях.

4. Как разработчик, я хочу, чтобы приложение имело возможность расширения, чтобы можно было добавлять новые функции и модули в будущем.