Frontend-прототип сервиса студенческих премий. Пользователь просматривает номинации, выбирает кандидата в интерактивном модальном окне и получает уведомление о принятом голосе.
Исходный код опубликован как часть портфолио. Использование, копирование, модификация и распространение без письменного разрешения правообладателя запрещены. Подробные условия находятся в LICENSE.
- адаптивная главная страница Student Awards;
- карточки номинаций с отдельными сценариями голосования;
- модальное окно со списком кандидатов и состоянием выбранного участника;
- уведомление об успешно принятом голосе;
- сворачиваемый FAQ;
- мобильное навигационное меню;
- анимация конфетти с поддержкой
prefers-reduced-motion; - отдельный демонстрационный экран авторизации.
| Область | Решение |
|---|---|
| Разметка | семантический HTML5 |
| Стили | CSS3, Tailwind CSS |
| Интерактивность | Vanilla JavaScript |
| Анимация | Canvas Confetti |
| Сборка стилей | PostCSS, Autoprefixer, Tailwind CLI |
Проект не использует frontend-фреймворк и может работать как обычный статический сайт. Tailwind применяется для генерации production-CSS.
Потребуются Node.js и npm.
npm install
npm run buildПосле сборки откройте index.html через локальный HTTP-сервер, например:
python3 -m http.server 8080Приложение будет доступно по адресу http://localhost:8080.
Для пересборки CSS при изменениях:
npm run devTopVoting/
├── index.html главная страница голосования
├── login.html демонстрационная форма авторизации
├── src/
│ ├── js/main.js логика интерфейса и голосования
│ ├── styles/ исходные стили и Tailwind entry point
│ └── assets/ шрифты и ресурсы страницы входа
├── public/
│ ├── css/styles.css собранные Tailwind-стили
│ └── images/ изображения интерфейса
Это автономный frontend-прототип. Кандидаты заданы демонстрационными данными в браузере, а голоса не сохраняются после обновления страницы. Для полноценного production-сервиса потребуются backend API, база данных, безопасная авторизация и серверная защита от повторного голосования.
Проект распространяется на условиях проприетарной source-available лицензии. Публичный доступ позволяет ознакомиться с реализацией, но не предоставляет права использовать её в коммерческих или некоммерческих целях.
