Создать веб-приложение для публикации рецептов по шагам Ruby on RaiLS

20 000 руб. за проект • наличный расчёт, безналичный расчёт, электронные деньги
21 августа 2018, 02:42 • 6 откликов • 49 просмотров
Ruby on Rails

В качестве клиентского фреймворка рекомендуется использовать Angular.

В
качестве CSS-фреймворка рекомендуется использовать Bootstrap (можно и
что-то другое, но какой-то CSS-фреймворк должен быть). Адаптивная
верстка, корректное отображение на телефоне.

Требуется разработать сайт для шаринга инструкций (вида "как из говна и палок собрать реактивный двигатель"), типа как wikihow.com

Неаутентифицированным
пользователи могут только читать инструкции (доступен поиск, недоступно
создание инструкций, комментарии, лайки и рейтинги).

Аутентифицированные пользователи имеют доступ ко всему, кроме админки.

Админка
позволяет управлять пользователями (просматривать, блокировать,
удалять, назначать админами). Администратор видит каждую страницу
пользователя и каждую инструкцию как автор (например, может
редактировать или создать от имени пользователя с его страницы новую).

Требуется поддерживать аутентификацию через соцсети (обязательно – Твиттер, Фейсбук, Контакт).

На
каждой странице доступен полнотекстовый поиск по сайту (результаты
поиска – всегда инструкции, например, если текст найден в комментарии к
инструкции, то выводится ссылка на инструкцию). Нельзя использовать
фул-скан базы, обязательно использовать движок full-text search.

У
каждого пользователя есть его личная страница, на которой он управляет
списком своих инструкции (таблица с фильтраций и сортировками,
возможность создать/удалить/редактировать инструкцию), поля с информаций
о пользователе (in-place editing) и "медальки".

Каждая
инструкция состоит из: название, краткое описание, картинка, тема (из
фиксированного набора тем, например, "Электроника", "Досуг и быт" и
проч.), тэги (вводится несколько тэгов, необходимо автодополнение –
когда пользователь начинает вводить тэг, выпадает список с вариантами
слов, которые уже вводились ранее на сайте). Помимо этого, инструкция
содержит "шаги" – название, блок текста с поддержкой форматирования
markdown и от одной до трех картинок (к шагу можно загрузить или удалить
картинки, они отображаются автоматически под текстом шага). Шаги
автомагически формируют оглавление и набор элементов управления для
перехода по шагам.

Все картинки сохраняются в облаке, все картинки загружаются драг-н-дропом.

На главной странице отображаются: последние обновленные инструкции, инструкции с самыми большими рейтингами, облако тэгов.

Для инструкции автомагически генерируется "меню навигации" – пред. шаг, следующий шаг, выбор из списка шагов (по названиям).

После
каждого шага отображаются комментарии (но общие на всю инструкцию, не
отдельно по шагам). Комментарии линейные, нельзя комментировать
комментариий, новый добавляется только "в хвост". Необходимо реализовать
автоматическую подгрузку комментариев – если у меня открыта страница с
комментариями и кто-то другой добавляет новый, он у меня автомагически
появляется (возможна задержка в 2-5 секунд).

Каждый пользовать
может проставить "рейтинг" (от 1 до 5 звездочек) инструкции (не более
одного от одного пользователя на инструкцию) – средний рейтинг
отображется у инструкции. Пользователь может поставить лайк у
комментария (не более одного на один комментарий от одного
пользователя).

Приложение должно поддерживать "медальки" – по
достижению какого-то результата на странице пользователя отображается
"медалька" (маленькие версии отображаются везде на сайте после имени
пользователя, имя всегда является ссылкой на страницу пользователя).
Например: "создал 5 инструкций", "собрал 20 лайков за комментарии",
"получил за инструкцию рейтинг 4+ с количеством отзывов 10+" и проч. (не
менее разных 4 медалей).

Сайт должен поддерживать два языка:
русский и английский (пользователь выбирает и выбор сохраняется). Сайт
должен поддерживать два оформления (темы): светлое и темное
(пользователь выбирает и выбор сохраняется).

Требования со звездочкой (после реализации остальных требований):

Кнопка при отображении инструкции, которая позволяет скачать инструкцию в PDF (генерируется сайтом автоматически).


Рекомендательная система на основе комментариев и райтингов: "возможно, вам будет интересно", выдается список инструкций.


Рендеринг формул (пользователь редактирует LaTeX).



Админка для управления отображеним рекламы в инструкциях —
таргетирование по темам (множественный выбор), загрузка баннеров и т.п.