BookWorld - это приложение аналог сайта LiveLib. Представляющие собой социальную сеть для читателей книг.
Приложение имеет возможности: ведения списка прочитанных книг, обсуждения книг и написание рецензий, добавления цитат и интересных фактов, а также возможность оценивать книги.
Каждый пользователь приложения имеет возможность добавлять друзей, и общаться с ними.
У пользователей есть возможность создания стандартных книжных полок, в частности, таких как: читаю сейчас, планирую прочитать, прочитал и др.
Помимо этого каждый пользователь может сформировать собственные книжные полки для классификации книг.
В приложении необходимо реализовать:
- регистрацию и авторизацию пользователей.
- аутентификацию.
- набор CRUD-операций для работы с книгами и авторами.
- вывод списка книг с динамической pagination (при помощи ajax) по 10-30 книг на странице.
- возможность добавлять, редактировать и удалять книги.
- рейтинг книг: добавить возможность оценивать книги пользователями.
- средний рейтинг книги.
- возможность искать книги по названию или автору.
- возможность фильтровать книги по жанру, издательству и другим параметрам.
- роли пользователей.
- триграммный поиск.
- пользовательские теги.
- систему умных персональных рекомендаций книг пользователю: приложение должно отслеживать действия пользователя и рекомендовать ему книги в зависимости от его действий или книг добавленных в избранное.
- подробную статистику, прочитанных книг в виде диаграмм.
- возможность импорта данных из профилей пользователей Goodreads/LiveLib.
- парсер книг с сайта Либрусек/Флибуста.
- каждая книга на сайте должна иметь: рецензии, истории, цитаты.
- возможность создавать пользователям персональные подборки книг.
- различные книжные активности для пользователей: например книжный вызов и конкурсы.
- возможность объединяться пользователям в тематические группы.
- рассылку на почту пользователям ежемесячных дайджестов и самого важного из мира книг.
- конвертер книг из одного формата в другой.
- интерфейс для администратора/модератора, позволяющий добавлять, редактировать и удалять книги и авторов.
- интерфейс для отправки уведомлений пользователям
- интерфейс для создания и управления сообществами пользователей.
- создания и управления списками книг.
- капчу (reCaptcha).
- возможность использовать в приложении Google Books API.
- возможность создавать и редактировать свои профили, пользователями, включая информацию о себе, а также изображения и другие данные.
- возможность просмотра профилей пользователей.
- Сделать генератор обложек, для книг, у которых они отсутствуют
- Сделать мобильную версию
Для приложения необходимо применить базовые паттерны проектирования. А также написать тесты.
Проект должно использовать следующие технологии:
- Rails 7.0.4.2
- Postgres 14.6
- Haml
- Sass
- Bootstrap
- Redis
- MongoDB(?)
- Docker(?)
- Elasticsearch(?)
- JavaScript
- gems: devise, simpleform, carrierwave, rspec-rails, factory-bot-rails, CanCan
Добавить жанры:
rake db:add_genres
Последнюю актуальную версию приложения можно посмотреть здесь