GithubHelp home page GithubHelp logo

starladder's Introduction

Тестовое задание для RoR-разработчика.

Я – организатор турниров по киберспортивной дисциплине (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, для гарантии уникальности записей.

starladder's People

Stargazers

Yana Kmiet avatar

Watchers

James Cloos avatar Ivan avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.