Я – организатор турниров по киберспортивной дисциплине (Dota 2). Я хочу, чтобы владельцы команд, которые хотят принять участие в моих турнирах, регистрировали свои команды на эти турниры через сайт. Я хочу видеть, какие и сколько команд, зарегистрировались на мой турнир.
Пользователь на сайте. Пользователь должен логиниться с помощью Starladder OAuth2 provider. Для этого необходимо реализовать omniauth strategy.
Starladder OAuth2 credentials:
Site: https://auth.starladder.com/
Authorize Url: https://auth.starladder.com/en/oauth/authorize
Callback urls: http://127.0.0.1:3000/auth/starladder/callback
resource owner's credentials API https://auth.starladder.com/en/api/v1/me.json
*Можем выдать ключи доступа для приложения с другим callback-url. *Чтобы зайти на сайт под другим пользователем, нужно разлогиниться на http://auth.starladder.com
В меню сайта должны быть ссылки на • главную страницу • страницу списка турниров • Login | Logout
На главной странице сайта отображается список команд, созданных пользователями. • Время создания команды в формате 1 September 2017, 12:00 • Логотип команды (выводить в область 100х100, натуральный размер изображения должен быть 200х200) • Название команды • Ник владельца команды. • Ссылка на форму редактирования команды, если пользователь ее владелец. • Кнопка удаления команды, если пользователь ее владелец.
На странице отображается кнопка создания команды, которая видна только залогиненному пользователю, если он еще не создавал команду. Кнопка ведет на форму создания команды.
Название команды должно быть уникальным и не может быть пустым. Логотип команды. Доступные форматы jpg, jpeg, png. Размер изображения при загрузке должен сжиматься до 200х200, но выводиться в область 100х100 (для красивого отображения на ретине). Пользователь создавший команду считается ее владельцем.
Команду может удалить только ее владелец.
Турниры в базу можно сгенерировать любым удобным способом (CRUD не нужен): в консоли, рейк-таском или db:seed. У турнира одно поле - название турнира, которое не может быть пустым.
В списке турниров отображается: • Название турнира
• Количество зарегистрированных участников
• Ссылка на страницу “участники турнира”
• Доступные действия пользователя
Доступные действия пользователя: Пользователь залогинен? • Да • У пользователя есть команда? • Да • Команда зарегистрирована в турнире? • Да - Кнопка “Выйти” • Нет - Кнопка “Зарегистрироваться” • Нет - Нет доступных действий • Нет - Нет доступных действий При нажатии на кнопки, действия должны выполняться без перезагрузки страницы.
На странице участников турнира отображается список команд, зарегистрировавшихся в турнир. • Время регистрации команды в турнир в формате 1 September 2017, 12:00 • Логотип команды (выводить в область 100х100) • Название команды • Ник владельца команды.
Код проекта должен быть выложен на github. Опционально: можем дать дроплет на DigitalOcean для деплоя приложения. Rails 4.2, 5+ PostgreSQL Bootstrap или любая front-end библиотека. Следование https://github.com/bbatsov/ruby-style-guide
Пользователь должен иметь доступ к действиям только для своей команды. В базе данных должны быть созданы нужные индексы, в том числе unique, для гарантии уникальности записей.