Данный репозиторий предназначен для хранения frontend части проекта HeadHunter, разрабатываемого командой VKатуны.
- Илья Андриянов
Виктория Гурьева(Покинула проект)- Олег Музалев
- Михаил Черепнин
- UI/UX: Екатерина Гражданкина
- Frontend: Алексей Зотов
- Backend: Никита Архаров
- СУБД: Роман Фильченков
Продукт uArt - это сайт для поиска работы для творческих специалистов. Идеей продукта было совмещение сайтов для размещения произведений таких специалистов и сайтов для поиска работы. Существует достаточно похожий пример в области геймдева, и на наш взгляд, это единственный пример - причем англоязычный.
По результатам семестра продукт не совсем реализует идею - не успели это реализовать. Но так или иначе, он работает.
Было принято решение реализовывать flux-подобную архитектуру. Она приведена на картинке.
В целом реализуется однонаправленный поток данных. StoreManager это связующее звено между virtual DOM и обобщенным flux'овым Store. При приходе любого действия StoreManager вызывает перестроение virtual DOM и так поддерживается тонкость View слоя (он почти не имеет состояния).
С одной стороны это позволяет держать данные консистентными и без аномалий при грамотном использовании Store. Однако важно понимать, что любой Store - это глобальный Singleton внутри StoreManager, поэтому всегда нужно следить за тем, что лежит в Store и при необходимости обновлять его.
View и Store разделены ActionCreators, которые скрывают за собой от View события Store'ов и скрывают от Store источник данных. Плюсом этого стало, что вся обработка сетевых ошибок лежит именно в них и в одном месте.
Для запуска необходимо установить зависимости:
-
Node v20.16.0
После установки Node нужно доставить дополнительные зависимости стандартной командойnpm install
Рабочий процесс настроен на webpack dev server. Чтобы его запустить, нужно прописать
npm run start
Сборка для продакшена осуществляется при помощи команды
npm run build