Постановка задачи
Программа предназначена для организации общественных распределенных библиотек электронных книг. Главные функции:
1) поддержание каталога книг;
2) поиск информации о книге в интернете (при вводе новой книги);
3) хранение электронных книг на локальном компьютере;
4) обмен книгами и описаниями (для одиночных книг, списков книг и целых коллекций).
1) Персональный книжный каталог
-- всё, что требуется, уже доступно в eLibPro.
2) Поиск информации о книге в интернете
Сейчас eLibPro может забирать информацию о книге с сайта Amazon.com
Требуется, чтобы программа могла забирать информацию с произвольных сайтов.
Для этого должна быть возможность подключать к программе отдельные подпрограммы, каждая из которых отвечает за связь с отдельным сайтом.
Аналогично
http://www.collectorz.com/book/3) Хранение электронных книг
Сейчас eLibPro может поддерживать ссылки на файлы, хранящиеся на локальном компьютере.
Нужно:
* чтобы программа позволяла работать с подключаемыми CD, DVD и жесткими дисками;
* могла генерировать оглавления html-оглавления дисков;
4) Обмен книгами и описаниями
Сейчас eLibPro может экспортировать и импортировать описания книг в XML-формате.
Кроме того, eLibPro может экспортировать описания книг в HTML-формате
Хотелось бы:
* чтобы формат обмена не зависел от локальной организации коллекции. Я имею в виду "Book ID", "Category ID" для XML-формата и ссылки на локальные файлы с картинками для HTML-формата.
* чтобы программа могла экспортировать списки книг (без описаний).
Нужно, чтобы программа поддерживала специальный формат хранения электронных книг, где каждая книга лежит в отдельной папке и в этой же папке лежит картинка обложки и XML-описание;
Сейчас eLibPro поддерживает комментарии к книгам.
Хотелось бы, чтобы поддерживалось два типа комментариев -- "личные" (которые доступны только внутри каталога) и "общественные" (которые передаются вместе с описаниями книги).
5) Дополнительно:
Следующие компоненты программы должны быть вынесенны из основной программы и подробно комментированы, чтобы смог разобраться даже начинающий. Очень желательно реализовать перечисленные блоки на простых технологиях:
блок с языком интерфейса,
шаблон для вывода списка,
шаблон описания книги,
субпрограмма, генерирующая имена папок книг,
субпрограммы, забирающие информацию с серверов, подобных Amazon.