Skip to content

Latest commit

 

History

History
99 lines (79 loc) · 4.7 KB

roadmap.md

File metadata and controls

99 lines (79 loc) · 4.7 KB

Roadmap:

v0.1 — Базовая инфраструктура

Цель: подготовить каркас приложения, базу, деплой и первый CRUD.

Результат: можно зарегистрироваться, авторизоваться и получить токен.

  • структура проекта;
  • настройка Alembic + SQLAlchemy (async);
  • добавление .env, pydantic Settings;
  • docker и docker-compose (PostgreSQL + PG_admin + приложение);
  • базовая модель User (uid, fio, email, role);
  • CRUD для пользователей;
  • JWT авторизация;
  • юнит-тесты (pytest + httpx).

v0.2 — Каталог книг

Цель: реализовать базовый каталог книг.

Результат: полноценный каталог книг с фильтрацией.

  • модель Book: title, author, isbn, year, genre;
  • pепозиторий и сервисный слой для книг;
  • CRUD эндпоинты /books;
  • поиск по названию, автору и ISBN;
  • пагинация, сортировка;
  • тесты на эндпоинты /books.

v0.3 — Учёт экземпляров и выдач

Цель: добавить логику инвентаризации и выдачи книг.

Результат: можно выдать книгу пользователю и вернуть обратно.

  • модель BookCopy (инвентарный номер, статус: available/loaned/lost);
  • модель Loan (reader_id, copy_id, issue_date, due_date, return_date);
  • сервисы: выдача, возврат, продление;
  • валидации (например, книга уже выдана);
  • отчёт “какие книги сейчас на руках”.

v0.4 — Резервирование и уведомления

Цель: добавить возможность бронировать книги и напоминания.

Результат: пользователи могут бронировать книги и получать уведомления.

  • модель Reservation (reader_id, book_id, created_at, status);
  • проверка, доступна ли книга для брони;
  • уведомления (через email / Telegram, через Celery worker);
  • планировщик задач (ежедневная проверка сроков возврата).

v0.5 — Администрирование и роли

Цель: разграничить права и дать библиотекарям панель управления.

Результат: админка и распределение прав.

  • роли: admin, librarian, reader; - ?
  • декораторы Depends(RoleChecker(...)); - ?
  • админ-эндпоинты: создание/удаление сотрудников; - ?
  • FastAPI Admin / custom React dashboard; - ?
  • журнал действий (аудит лог).

v0.6 — Отчётность и аналитика

Цель: добавить статистику и отчёты.

Результат: библиотекари видят аналитику и могут формировать отчёты.

  1. Отчёты:
  • Топ популярных книг
  • Топ активных читателей
  • Просрочки
  • Ежемесячная выдача книг
  1. Сервис reports/ с SQL-агрегациями
  2. Эндпоинты /reports/...
  3. (Опционально) выгрузка в CSV / Excel

Тут надо все обдумать пока хз.


v0.7 — UI и API интеграции

Цель: добавить удобный фронт(?) и внешние API.

Результат: визуально готовое приложение с внешней интеграцией.

  • интеграция с внешним API (Google Books / OpenLibrary); → автозаполнение метаданных книги по ISBN

  • веб-интерфейс (React/Vue); → авторизация, поиск книг, просмотр истории выдач

  • graphQL слой (в идеале).


v1.0 — Production-ready релиз

Цель: отшлифовать проект и довести до продакшена.

Результат: готовый продакшен-проект.

  • настройка Nginx reverse-proxy;
  • Docker Compose: FastAPI + Postgres + Redis + Celery + Nginx;
  • CI/CD (GitHub Actions: тесты, миграции, деплой);
  • оптимизация запросов, индексов, кэширования;
  • полное тестовое покрытие.