LIB — это веб-приложение, имитирующее работу электронной библиотеки.
Проект был создан как дипломная работа (или тестовое задание) для студии веб-разработки webCat.
Приложение предоставляет функциональность для двух групп пользователей: администраторов и обычных пользователей (при этом администраторы обладают всеми правами пользователей).
- Поиск и скачивание книг без регистрации.
- Регистрация аккаунта для получения дополнительных возможностей:
- Написание отзывов на книги.
- Добавление книг в избранное.
- Просмотр профилей других пользователей с отображением их отзывов и избранного.
На сайте реализовано два типа поиска:
- AJAX-поиск — работает при вводе текста в строку поиска, отображая подсказки в реальном времени.
- Обычный поиск — при нажатии на кнопку «Поиск» осуществляется переход на маршрут
/search, в URL добавляется поисковый параметр.
- Добавление, редактирование и удаление авторов и книг.
- Модерация отзывов пользователей (например, удаление спорных комментариев).
- Полный доступ ко всем функциям пользователей.
Сайт поддерживает навигацию по всем основным разделам через интерфейс — ручной ввод URL не требуется.
- Языки: Python, JavaScript
- Бэкенд: Flask, Flask-Login, Flask-WTF, SQLAlchemy, Alembic
- Фронтенд: HTML, CSS, jQuery
- Шаблонизатор: Jinja2
- База данных: SQLite3
При разработке проекта возникло несколько сложностей:
- Динамические поля форм — потребовали использования комбинации Flask-WTF, JavaScript, HTML и CSS, что привело к архитектурным компромиссам.
- Нехватка времени — не все запланированные функции были реализованы, однако основная часть проекта завершена и готова к использованию.
- Реализация полноценной системы тегов:
- Фильтрация книг по тегам.
- Управление тегами через веб-интерфейс (сейчас только через код).
- Добавление страницы автора с описанием, биографией и списком книг.
-
Клонируйте репозиторий на ваш компьютер:
git clone <ссылка_на_репозиторий> -
Установите зависимости:
pip install -r requirements.txt -
Инициализируйте базу данных:
Внутри виртуального окружения выполните:
flask db upgradeВажно: файл базы данных не включён в репозиторий. Миграции создадут актуальную структуру БД.
-
Создайте тестовые данные:
Перейдите в папку
appи запустите скрипт:python create_test_data.pyОн добавит примерные книги, авторов и отзывы в базу данных для тестирования.
- Telegram: @taishakutnn
- Хабр: taishakuten на Habr