Разработка библиотечного софта

И да-да, я знаю, что наверняка что-то похожее есть. Но мне хочется написать своё, которое будет работать так, как я хочу.

Что хочется

Программа, которая будет следить за папкой, в которой будут появляется мои книги, разбирать их, добавлять в базу данных, по которой потом можно будет найти любую книгу. Должна работать с:

  1. FB2
  2. EPUB
  3. PDF
  4. иметь возможность достаточно быстро расширяться под какой-то новый формат

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

Иметь web-интерфейс (ну кто сейчас пользуется толстыми клиентами, кроме 1С 😁).

По хорошему — иметь APIшку, вдруг стрельнёт и народ начнёт писать собственные клиенты для этого.

Что пока получается

Я накидал каркас приложения, с фоновым сервисом, который смотрит в указанную папку, берёт оттуда файлики и пытается их разобрать (но только тех форматов, что разрешено).

Пока делал понял, что FB2 в целом очень даже не плохой формат, потому что EPUB СЛИШКОМ гибок, но имеет больше возможностей.

Файлы разбираются и раскладываются по установленным местам. Не знаю зачем я сделал разные папки для хранения, но мне хочется иметь каталоги с книгами по типам файлов, а не одну большую помойку. Пусть будет три не очень больших.

Всё это складывается в базу данных, которая пока может хранить информацию о книге, авторе, жанре и серии книг.

Сверху прикручиваю простой web-интерфейс на JSP + PureCSS + Vanilla JS, который пока просто показывает меню и кнопку загрузки новой книги.

Разработка библиотечного приложения. Наброски Web UI

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

Из интересного:

  1. Узнал, что встроенный в Spring Boot Tomcat не умеет в компиляцию JSP, потому что подключает только:
    tomcat-embed-core
    tomcat-annotations-api
    tomcat-embed-el
    tomcat-embed-websocket
    tomcat-annotations-api
    И как видим, ничего про JSP/JSTL тут нет. Поэтому пришлось подключать tomcat-embed-jasper. Он уже умеет.
  2. Также узнал, что не всем нравятся BootstrapCSS, поэтому есть микро сборки, который поддерживают только сетку, например.
  3. Следующим открытием для меня стало то, что EPUB — это, под капотом, такой же HTML, как и FB2, но немножко более структурированный. Но всю мета-информацию не стандартизировали, а добавляют через Дублинское ядро, но при этом есть возможность каждому редактору напихать чего-то своего. В целом, я всегда читал только в формате FB2, поэтому с EPUB просто не сталкивался.
  4. В PDF можно добавить много полезной информации, но хранение — на усмотрение приложения, которое его редактировало, но есть пара общих полей.
  5. Человек, придумавший FB2 не умеет писать XSD.
  6. Вспомнил, какой классный JSP и как классно можно шаблонизировать через tags.

Вам может также понравиться...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *