Идея. Модуль Orchard CMS для организации небольшой библиотеки

Tags: идея, orchard cms

Помимо всего прочего я, время от времени, занимаюсь оцифровкой и вёрсткой электронных книг. В основном верстаю художественные, эзотерические и около-политические книги в формате FB2. Свёрстанные книги обычно сразу же засылаю на Либрусек в общее пользование, кроме случаев, когда делаю это по заказу каких-либо авторов. Вот уже год или больше практически каждую неделю верстаю очередной номер газеты "К Барьеру!" (запрещённая "Дуэль").

В итоге накопилось довольно много электронных книг, которые хотелось бы выложить на своём сайте (да простят меня боги копирастов!). Это, конечно, можно сделать каким-либо стандартными, не самыми изящными и подходящими для данной задачи средствами. Но ведь я программист, да и начинал я вести этот сайт в немалой степени для того, чтобы учиться новым для меня технологиям в области web-программирования. А поэтому я просто обязан создать такой модуль для Orchard CMS и рассказать о процессе в своём блоге. Глядишь и кому-то пригодиться. Но вначале надо продумать идею, зафиксировать ви́дение продукта и сформировать первоначальную версию технического задания. Именно этому и будет посвящён данный пост.

Видение

Потребности дела

Хочу публиковать свёрстанные мной электронные книги на своём сайте, так что бы взаимодействовать с получившейся библиотекой было удобно, как мне, так и посетителям сайта.

Описание решения

Модуль Orchard CMS, позволяющий администратору создать на сайте небольшую библиотеку электронных книг для пользователей сайта.

Основные возможности продукта

Модуль предоставляет возможности для двух ролей: администратор и посетитель сайта.

Администратору доступны следующие возможности:

  1. Создать библиотеку электронных книг.
  2. Изменить набор книг в библиотеке, каждая книга может быть представлена в различных форматах.
  3. Предоставить мета-информацию о книге, такую как: название, авторы, обложка, краткое описание и т.п. (TBD: определить полный перечень полей мета-информации).
  4. Назначить книге теги.

Посетителю доступны следующие возможности:

  1. Просмотреть список всех книг.
  2. Просмотреть список книг по жанрам.
  3. Просмотреть список книг по тегам.
  4. Отсортировать книги в списке по выбранному критерию. (TBD: определить список критериев сортировки)
  5. Выбрать одну из книг и просмотреть по ней мета-информацию.
  6. Прочитать книгу на сайте. Наличие этой возможности для конкретной книги зависит от доступных форматов книги.
  7. Скачать файл книги. (список возможных форматов для скачивания зависит от исходного формата книги)
  8. Поставить книге оценку по пятибалльной шкале. (TBD: возможно оценки по нескольким критериям, таким как: интересность повествования и сюжета, стиль автора, информативность и т.п.)
  9. Написать рецензию о книге.

Рамки проекта

  1. Решение не предназначено для хранения и организации доступа к большому количеству книг (более 1000 наименований).
  2. Мета-информация предоставляется только о самих книгах, но не об авторах, жанрах и пр.
  3. Жанры не организованы в древовидную структуру, это просто строки текста.
  4. Модуль не изменяет как-либо исходные файлы в том числе и для сохранения изменений мета-данных, хранимых в файлах книг.
  5. Преобразование книг в различные форматы не является первоочередным и по предварительным оценкам будет реализовано только для формата FB2.

Прочие требования

  1. Предпочтительным форматом для загрузки и хранения книг является FB2, так как он хранит основную мета-информацию о книге внутри файла и позволяет преобразовать файл в несколько других форматов.
  2. Для форматов, не поддерживающих хранение мета-информации внутри файла, файлы книг будут выгружаться в ZIP-файле, в котором помимо самой книги хранится FBD-файл, содержащий мета-информацию о книге.
  3. При загрузке FB2-файла мета-информация о книге загружается из него.
  4. Жанры реализованы, как независимое облако тегов. TBD

Меткой TBD ( = To Be Defined) помечаются части, которые необходимо по-лучше проработать.