Where Are My Likes - это сервис, помогающий пользователям отслеживать и оценивать метрики, а также находить наименее активных подписчиков.
Сервис разрабатывается для использования с профилями пользователей социальной сети VK.
Сценарий взаимодействия пользователя следующий:
- Пользователь аутентифицируется с использованием кнопки OneTap VK ID;
- Пользователь попадает на дэшборд, в котором видит информацию о своём профиле, подсчитанные общие метрики, список своих постов за год и метрики этих постов, список неактивных друзей;
- Пользователь может перейти к заинтересовавшему его объекту в сети VK в новой вкладке браузера;
- Пользователь может запросить обновить его метрики.
Дополнительно в сервисе присутствуют пользователи-администраторы, которые могут получить доступ к "админке" со следующими возможностями:
- Посмотреть список зарегистрированных пользователей;
- Посмотреть метрики пользователя и данные, по которым они рассчитаны;
- Доступ в админку имеют только администраторы, обычные пользователи зайти не могут;
- Если доступа к админке у пользователя нет, то при попытке в неё войти необходимо вывести ошибку 404.
Разработка должна вестись в Docker-контейнерах для достижения изоляции среды исполнения и её схожести с средой в проде.
Перечень основных операций с приложением представлен в Makefile, самые полезные из них:
make setup
- сборка и конфигурация всех контейнеров, необходимых для работы приложения;make up
- запуск всех контейнеров и приложения;make deps
- обновить lock-файлы и установить зависимости локально (необходимы bundle и yarn);make down
- удаление контейнеров приложения;make clear
- удаление контейнеров/образов/волюмов/сетей и прочего, связанных с приложением;make ash
- запуск терминала в контейнере приложения;make creds
- открыть зашифрованный файл с credentials;make console
- запуск Rails-консоли;make rubocop
- запуск линтера;make rubocop-verbose
- запуск линтера с строгими правилами;make rubocopA
- запуск линтера с автокорректом;make db-migrate
- провести миграции;make db-rollback
- откатить миграцию;make deploy
- выполнить развертывание сервиса.
- 12 Factor App - методология разработки современных веб-приложений;
- Turbo Rails tutorial - гайд, как делать веб-приложения с динамически изменяющимися страничками, без полной перезагрузки, пользуясь всеми возможностями Rails;
- Stimulus - JS-фреймворк в философии Rails;
- Rails Credentials - что такое Credentials в Rails, как ими пользоваться;
- VK API Reference - справка по VK API;
- VK ID Reference - справка по VK ID.