проект на 2-3-х человек
Один из наиболее прогрессивных университетов решил перевести процесс учета приема абитуриентов на технологию Blockchain.
Основной мотивацией использования Blockchain является полная прозрачность алгоритмов процесса приема и невозможность подменить данные о результатах экзаменов.
Требуется разработать прототип системы на Ethereum, чтобы доказать работоспособность идеи.
В предметной области выделяются следующие модули:
- Контракт University - реест специальностей
- регистрация специальностей c кол-вом мест по специальности и перечнем необходимых экзаменов
- Например, специальность "Прикладная математика и информатика", 50 мест, экзамены: Р (русский), М (математика), Ф (физика)
- Контракт Students для регистрации поступающих абитуриентов - реестр абитуриентов
- Регистрация абитуриента: #08-123 (уникальный номер), # специальности, Фамилия Имя Отчество
- Контракт Priem - основная база данных о результатах экзаменов
- Регистрация сданного экзамена
- Например, студент #08-123, Экзамен: М (Математика) - 85 баллов
- Отчет о текущем состоянии приема
- Входные параметры: № специальности
- Выходные данные: таблица
Место по рейтингу | № абитуриента | Фамилия Имя Отчество | Кол-во баллов | Проходит по конкурсу (да/нет) |
1 (отсортированы по кол-ву баллов) | 08-123 | Иванов Иван Иванович | 165 (сумма баллов за все экзамены, требующиеся на эту специальность), "н/д" - если еще не все данные был поданы | да (если место по рейтингу <= кол-ва мест), иначе "нет" |
Сценарии использования:
- Инициализация приемной комиссии
- Создание экземпляра контракта University
- Создание экземпляра контракта Students со ссылкой на University
- Создание экземпляра контракта Priem со ссылкой на Students
- Заполнение University специальностями
- Регистрация абитуриента и результатов экзаменов
- Students.register() - Регистрация абитуриента на специальность
- Priem.register() - Регистрация сданных экзаменов абитуриента
- Генерация отчета приема по специальности по данным из контрактов Priem, Students, University
За счет того, что вся подаваемая студентом информация, включая сданные экзамены, оформлена в виде транзакций Blockchain, ее невозможно изменить не разрушив всю последующую цепочку блоков. Так как все данные и логика хранятся в Blockchain (логика формирования отчета тривиальна) - то весь процесс приема прозрачен для любого участника.
Предлагаемый план работы над проектом:
Проект может выполняться 2-3 студентами.
Фаза 1. Уточнение требований и проектирование - совместное обсуждение, вопросы преподавателю. Результат: зафиксированные интерфейсы контрактов, структуры данных и продуманная логика работы отчета.
Фаза 2. Параллельная разработка и тестирование логики контрактов.
Фаза 3. Заполнение данными, тестирование контрактов совместно, разработка отчета