Skip to content

dionixs/book-world

Repository files navigation

BookWorld

Описание

‼️ ВНИМАНИЕ! Проект находится в активной разработке! ‼️

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

Тесты

Добавить жанры: rake db:add_genres

Демо

Последнюю актуальную версию приложения можно посмотреть здесь