BOOK-LIBRARY — full-stack веб-приложение для домашней или небольшой частной электронной библиотеки. Проект помогает разложить книги по категориям, показать их в публичном каталоге и отдавать скачивание через короткоживущие ссылки.
В проекте есть две части. Публичная часть показывает категории и книги: читатель открывает раздел, видит карточки с обложкой, названием, автором и описанием, а затем запрашивает ссылку на скачивание. Админская часть нужна для наполнения библиотеки: вход по логину и паролю, создание категорий, загрузка одной книги, редактирование записей, удаление книг и пакетный импорт ZIP-архива.
Отдельный интересный слой — автоимпорт. Если при загрузке не хватает названия, автора, описания, категории или обложки, backend пытается извлечь метаданные из файла, передать фрагмент текста в LLM и найти обложку через внешние источники. Это не заменяет ручную проверку, но снимает самую скучную часть работы при добавлении большой коллекции.
Что уже закрывает проект
- публичный каталог категорий и книг;
- карточки книг с обложкой, автором, описанием и кнопкой скачивания;
- временные download-ссылки вместо прямой раздачи постоянного URL файла;
- админ-панель с session-based авторизацией;
- добавление, редактирование и удаление книг;
- создание и удаление категорий;
- пакетная загрузка ZIP-архивов с потоковым прогрессом обработки;
- автоизвлечение метаданных из FB2, EPUB и PDF;
- поиск обложек через Open Library, Google Books и DuckDuckGo;
- legacy-версия на EJS для простого HTML-интерфейса.
Как устроен основной сценарий
Администратор создаёт категории, загружает книгу или ZIP-архив, при необходимости дополняет поля вручную. Backend сохраняет запись в SQLite, кладёт файл книги в файловое хранилище, обложку приводит к WebP через Sharp и отдаёт её как статику. Читатель видит уже готовый каталог и скачивает книгу через временный токен.
Такой проект полезен не как абстрактная «платформа для контента», а как понятный инструмент для личной коллекции: когда книги уже лежат в разных форматах, но хочется быстро привести их к каталогу с категориями, обложками и описаниями.
Подробнее
- Обзор и сценарии — как библиотекой пользуются читатель и администратор.
- Архитектура — SvelteKit frontend, Express backend, SQLite, uploads и основные API.
- Импорт, метаданные и каталог — как устроены одиночная загрузка, ZIP-импорт, LLM-обогащение и поиск обложек.
- Roadmap — что стоит усилить дальше, включая интеграцию с этим Quartz-сайтом.



