Задачи проекта были :
1)Разработать простой и удобный интерфейс для ввода данных студентов (имя, баллы).
2)Создать возможность задавать количество доступных грантов.
3)Автоматизировать процесс распределения грантов между студентами на основе их баллов.
4)Обеспечить визуальное отображение списка студентов с указанием статуса («грант получен» / «грант не получен»).
5)Добавить валидацию ввода (корректность имени, диапазон баллов, ограничение по количеству грантов).
6)Сделать дизайн понятным и приятным для пользователя (чистая таблица, уведомления об ошибках и успехах).
🔧 Что я сделал
HTML-шаблон: создал структуру страницы с формой для добавления студентов, полем для указания количества грантов и таблицей для отображения списка.
CSS-оформление:
добавил фон с изображением и полупрозрачный контейнер;
настроил стили для таблицы, кнопок и форм;
реализовал эффекты при наведении и выделении ошибок/успешных действий.
JavaScript-функционал:
реализовал добавление студентов в список с проверкой корректности ввода;
создал функция автоматического распределения грантов по принципу «наибольшие баллы → приоритет»;
добавил ограничение по количеству грантов;
предусмотрел сообщения об ошибках (некорректные данные, пустой список, неверное количество грантов) и успешных действиях;
реализовал обновление таблицы в реальном времени.
Логика распределения: сортировка студентов по убыванию баллов и выделение грантов в пределах указанного лимита.
UI/UX:
понятные уведомления о статусе действий (ошибка/успех);
статус в таблице «Грант получен» или «Грант не получен»;
авто очистка полей после добавления студента.
В результате получилась интерактивная веб-страница, которая:
позволяет добавлять студентов и задавать количество грантов;
автоматически распределяет гранты на основе баллов;
выводит результат в удобной таблице;
защищена от ошибок ввода и оформлена с приятным интерфейсом.