Фронтенд, который чувствуется.

Ян Ханов itisyang

Рейтинг: 52
не верифицирован
Всего отзывов: 0
  • Работ в портфолио: 2
  • Типовых услуг: 0
  • Работ на продажу: 0
  • Стаж работы: 2 года
  • Тип занятости: Полный фриланс
  • Юридический статус:Частное лицо
Был на сайте:

SPA "Best Award" для номинаций и голосования. Разработан для онлайн-мероприятий, с адаптивной вёрсткой и Vue 3.

Используемые навыки:

Описание

Клиент — организатор онлайн-конкурса музыкальных премий — обратился с задачей создать удобную и безопасную платформу для голосования и управления номинациями. Целью проекта было:
Обеспечить регистрацию участников и защиту от накруток
— Авторизация пользователей через e-mail/пароль с помощью Firebase Authentication.
— Разграничение прав: только авторизованные пользователи могут предлагать номинантов и голосовать.
Реализовать систему номинаций и реального голосования
— Возможность создавать, редактировать и фильтровать категории (синглы, альбомы, исполнители).
— Живые обновления голосов в реальном времени через Firebase Realtime Database.
Гарантировать высокую производительность и масштабируемость
— Использование Vue 3 с Composition API и Pinia для быстрой клиентской логики.
— Ленивая загрузка компонентов и изображений (lazy-loading), оптимизированный бандл через Vite.
Создать чистый и адаптивный интерфейс
— Модульная структура стилей (CSS Modules, scoped styles) для изоляции и поддержки кода.
— Анимации загрузки и переходов для улучшения UX.
Обеспечить лёгкость дальнейшего расширения
— Чёткое разделение на слои: /components, /services, /stores, /views.
— Подготовленная архитектура для добавления новых категорий и функций без серьёзных доработок.

Решение

— Выбрал стек: Vue 3 + Composition API для гибкой логики компонентов, Nuxt 3 для упрощённого роутинга и SEO, TypeScript для статической типизации.
— Определил модель данных номинаций, пользователей и голосов, учёл требования по безопасности и целостности.
Настройка окружения и CI/CD
— Создал шаблон проекта через nuxi init, настроил модули для TypeScript и Pinia.
— Интегрировал Vite для быстрого билда и быстрой перезагрузки в режиме разработки.
— Настроил проверку типов, линтер (ESLint + Prettier) и написание простых unit-тестов на Jest для ключевых утилит.
— Подключил GitHub Actions: при каждом пуше в основную ветку автоматически прогоняются линтер, тесты и делается деплой на Netlify.
Реализация аутентификации и авторизации
— Настроил Firebase Authentication с поддержкой e-mail + пароль: формы регистрации, входа, восстановления пароля.
— Создал middleware в Nuxt для защиты приватных и админских страниц: проверка статуса пользователя и роли.
— Добавил отображение статуса загрузки и ошибок при авторизации.

Результат

В результате клиент получил современное веб-приложение “Best Award”: адаптивный SPA с управлением номинациями и голосованием, защищённой регистрацией, моментальным обновлением результатов и лёгким интерфейсом администрирования. Платформа полностью готова к проведению масштабных музыкальных премьер и может быть расширена под любые другие форматы онлайн-награждений.

Презентация проекта

BEST-AWARD-05-17-2025_03_56_PM.png

Оценили проект:

1