- 📚 Обзор проекта
- 🎯 Функциональные возможности по ролям
- 🏗️ Архитектура системы
- 📸 Скриншоты
- 🚀 Установка и запуск
- 🔐 Аутентификация и авторизация
- 📄 Генерация документов
- 📊 Статистические отчеты
- 📞 Поддержка
SigmaLib - это современная система управления библиотекой, разработанная на платформе .NET с использованием AvaloniaUI для кроссплатформенного интерфейса и SQLite в качестве базы данных.
- Просмотр профиля: Личная информация и активность
- Поиск книг:
- По названию, автору, жанру, ISBN
- Фильтрация по доступности
- История бронирований:
- Текущие бронирования
- История прошлых заказов
- Статусы заявок
- Бронирование книг:
- Выбор книги из каталога
- Указание периода бронирования
- Отслеживание статуса бронирования
- Управление библиотечным фондом:
- ✅ Добавление новых книг
- ✏️ Редактирование информации о книгах
- ❌ Удаление книг из каталога
- 🔍 Расширенный поиск по книгам
- Работа с читателями:
- Поиск читателей по различным критериям
- Просмотр истории активности читателя
- Снятие задолженностей
- Управление бронированиями:
- Просмотр всех активных заявок
- ✅ Одобрение бронирований
- ❌ Отклонение бронирований с указанием причины
- Оформление операций:
- Выдача книги (создание договора передачи в Word)
- Прием возврата книги (создание акта возврата в Word)
- Автоматическое обновление статуса книги
- Управление пользователями:
- 👥 Добавление новых пользователей
- ✏️ Редактирование данных пользователей
- ❌ Удаление пользователей
- 🔍 Расширенный поиск пользователей
- Статистика и аналитика:
- Общая статистика библиотеки
- Популярность книг (топ-10)
- Активность читателей
- Отчеты по периодам
- Системные функции:
- Управление ролями пользователей
- Резервное копирование данных
- Просмотр логов системы
- Платформа: .NET 8.0
- Интерфейс: AvaloniaUI (кроссплатформенный)
- База данных: SQLite
- IDE: Visual Studio 2022
- Документы: Microsoft Word Interop / OpenXML
- Система контроля версий: Git
-- Таблица пользователей (Users)
Users (
Id INTEGER PRIMARY KEY AUTOINCREMENT,
Email TEXT NOT NULL UNIQUE, -- Username (используется Email)
Password TEXT NOT NULL, -- PasswordHash
FirstName TEXT NOT NULL, -- PersonalData
LastName TEXT NOT NULL, -- PersonalData
SurName TEXT NOT NULL, -- PersonalData
Phone TEXT UNIQUE NOT NULL, -- PersonalData
Address TEXT NOT NULL, -- PersonalData
IsBlocked INTEGER NOT NULL DEFAULT 0, -- PersonalData
Role TEXT NOT NULL, -- Role: Reader/Librarian/Admin
TotalFine DECIMAL(10,2) NOT NULL DEFAULT 0 -- PersonalData
)
-- Таблица книг (Books)
Books (
Id INTEGER PRIMARY KEY AUTOINCREMENT,
Title TEXT NOT NULL,
Author TEXT,
Year INTEGER, -- Аналог дополнительной информации
Genre TEXT NOT NULL,
Price DECIMAL(10,2) NOT NULL, -- Дополнительное поле
TotalCopies INTEGER NOT NULL, -- Дополнительное поле
AvailableCopies INTEGER NOT NULL DEFAULT 0, -- Статус доступности
is_reservable INTEGER NOT NULL DEFAULT 1 -- Статус возможности бронирования
-- В текущей схеме отсутствует ISBN, можно добавить
)
-- Таблица экземпляров книг (BookCopies)
-- Отдельная таблица для физических копий
BookCopies (
Id INTEGER PRIMARY KEY AUTOINCREMENT,
IdBook INTEGER NOT NULL, -- BookId (ссылка на Books.Id)
Location TEXT NOT NULL, -- Местоположение
Status TEXT NOT NULL, -- Status: Available/Reserved/CheckedOut/Archived
Condition TEXT NOT NULL, -- Состояние: New/Good/Damaged/Excellent
FOREIGN KEY (IdBook) REFERENCES Books(Id) ON DELETE CASCADE
)
-- Таблица бронирований (Reservations)
Reservations (
Id INTEGER PRIMARY KEY AUTOINCREMENT,
ReaderId INTEGER NOT NULL, -- UserId
BookCopyId INTEGER NOT NULL, -- BookId (ссылка на BookCopies.Id)
Status TEXT NOT NULL, -- Status: Pending/Approved/Rejected/Completed
CreatedAt TEXT NOT NULL, -- Dates: Дата создания
PickupDate TEXT, -- Dates: Дата получения
ReturnDate TEXT, -- Dates: Планируемая дата возврата
ResponseDate TEXT, -- Dates: Дата ответа библиотекаря
ActualReturnDate TEXT, -- Dates: Фактическая дата возврата
Reason TEXT, -- Причина отклонения
Fine DECIMAL(10,2) NOT NULL DEFAULT 0, -- Штраф
RespondedByLibrarianId INTEGER, -- Кто обработал заявку
FOREIGN KEY (ReaderId) REFERENCES Users(Id) ON DELETE CASCADE,
FOREIGN KEY (BookCopyId) REFERENCES BookCopies(Id) ON DELETE CASCADE,
FOREIGN KEY (RespondedByLibrarianId) REFERENCES Users(Id) ON DELETE CASCADE
)
- Visual Studio 2022 (или новее)
- .NET 8.0 SDK
- SQLite
- Microsoft Word (для генерации документов)
# 1. Клонирование репозитория
git clone <repository-url>
cd SigmaLib
# 2. Восстановление зависимостей
dotnet restore
# 3. Создание базы данных
# База данных автоматически создается при первом запуске
# Или используйте скрипт миграции
# 4. Запуск приложения
dotnet run- Reader (Читатель) - базовый доступ
- Librarian (Библиотекарь) - расширенный доступ
- Admin (Администратор) - полный доступ
- Ввод логина и пароля
- Проверка учетных данных в БД
- Загрузка соответствующего интерфейса по роли
-
Договор передачи книги (при выдаче):
- Данные читателя
- Информация о книге
- Срок возврата
-
Акт возврата книги:
- Отметка о возврате
- Расчет штрафов (при необходимости)
Формат: .docx (Microsoft Word)
Расположение: Assets/Contracts/
- количество пользователей
- количество активных бронирований
- количество книг в каталоге
- общая сумма неоплаченных штрафов
- Экран входа - аутентификация
- Главное меню - зависит от роли
- Каталог книг - поиск и фильтрация
- Профиль пользователя - личные данные
- Панель управления (для библиотекаря/админа)
- Проверьте наличие .NET 8.0 SDK
- Убедитесь в доступности SQLite
Последнее обновление: 16.01.2026
Версия: 1.0.0
Разработано с использованием: C#, AvaloniaUI, SQLite, Visual Studio 2022