Personal Library Manager
Технологический стек
Основные задачи проекта:
Ключевые особенности
система
Заключение
57.31K
Category: programmingprogramming

Personal Library Manager

1. Personal Library Manager

PERSONAL LIBRARY
MANAGER
Разработчик: Инютин Иван и Гераськин Дмитрий
Дата создания: 2026
Версия: 0.1

2. Технологический стек

ТЕХНОЛОГИЧЕСКИЙ СТЕК
Backend
• Flask (Python) - основной фреймворк веб-приложения
• SQLite - лёгкая встраиваемая СУБД и для работы с базой данных
Frontend & UI
• Jinja2 - шаблонизация HTML
• Bootstrap 5 - адаптивный CSS-фреймворк
• HTML/CSS/JavaScript - клиентская логика и интерактив
Аутентификация и безопасность
• Flask-Login - управление сессиями и авторизацией
• bcrypt - хеширование паролей
• Flask-WTF - валидация форм и защита от CSRF
Дополнительно
• pytest - тестирование API и бизнес-логики
• Валидация JSON-ответов API

3. Основные задачи проекта:

ОСНОВНЫЕ ЗАДАЧИ ПРОЕКТА:
Аутентификация и авторизация
• Регистрация / вход пользователей
• Защита закрытых маршрутов
• Безопасное хранение паролей
Управление книгами
• Добавление/редактирование/удаление книг
• Загрузка обложек
• Фильтрация и сортировка по автору, жанру, году
Выдача и возврат книг
• Маркировка книги как «выдана»
• Блокировка повторной выдачи до возврата
• История выдачи (опционально - в будущем расширении)
Интерфейс
• Адаптивный дизайн (mobile-first)
• Карточки книг с обложками и кнопками действий
• Поиск и фильтрация в реальном времени

4. Ключевые особенности

КЛЮЧЕВЫЕ ОСОБЕННОСТИ
Пользовательская изоляция
• Каждый пользователь видит только свои книги (без пересечений).
Гибкое управление метаданными
• Авторы и жанры - справочники: можно создавать новые или
выбирать существующие.
Безопасность «из коробки»
• Защита от SQL-инъекций (SQLAlchemy), CSRF (Flask-WTF),
хеширование паролей.
API-first подход
• Отдельный API для интеграции (например, мобильное приложение
в будущем).
Тестопригодность
• Покрытие pytest: проверка авторизации, CRUD операций,
валидации.
Минимализм + масштабируемость
• SQLite для старта, легко заменяется на PostgreSQL/MySQL при
росте.

5. система

СИСТЕМА
• Что делает приложение?
• Пользователь регистрируется - создаёт свою личную
библиотеку.
• Добавляет книги (название, автор, жанр, год, обложка).
• Выдаёт книгу другому человеку - система помечает её как
«взята».
• Возвращает - книга снова становится доступной.
• Как устроено внутри?
• Бэкенд: Flask (Python) - обрабатывает запросы, логику и
данные.
• База данных: SQLite - хранит пользователей, книги, авторов и
жанры.
• Фронтенд: HTML + Bootstrap - красивый и удобный интерфейс
на любом устройстве.
• Безопасность: пароли зашифрованы, формы защищены от
подделки, доступ только для авторизованных.

6. Заключение

ЗАКЛЮЧЕНИЕ
• Цель достигнута:
• Реализовано веб-приложение для личного управления
библиотекой с полным циклом - от регистрации до выдачи
книг.
• Преимущества решения:
• Простота развёртывания (один файл .py, SQLite)
• Чёткое разделение слоёв (MVC-like)
• Готовность к расширению (API, история выдачи, уведомления)
• Дальнейшие шаги (Roadmap):
• Добавить историю выдачи книг
• Реализовать поиск по ISBN / автоматическое заполнение
метаданных
• Поддержка нескольких пользователей в одной библиотеке
(«семейная» версия)
• Docker-образ для деплоя
English     Русский Rules