# ElibBlazor **Repository Path**: lixingx86/elib-blazor ## Basic Information - **Project Name**: ElibBlazor - **Description**: 采用blazor实现的图书管理系统 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-13 - **Last Updated**: 2026-05-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Elib Blazor 图书馆管理系统 基于 Blazor 和 SqlSugar 构建的现代图书馆管理系统,提供图书借阅、读者管理、分类管理等完整功能。 ## 功能特性 - 📚 **图书管理**:图书的增删改查,支持 ISBN、作者、分类等检索 - 👥 **读者管理**:读者信息维护,包括姓名、电话、邮箱 - 📖 **借阅管理**:完整的借书、还书流程,支持借阅期限设置 - 🗂️ **分类管理**:图书分类管理,支持级联关系 - 🔐 **认证授权**:管理员登录认证,基于角色的访问控制 - 📱 **响应式界面**:基于 Bootstrap 5 的现代化响应式 UI ## 技术栈 - **前端框架**:Blazor Web App - **后端框架**:.NET 8+ - **ORM**:SqlSugar - **数据库**:支持 MySQL、PostgreSQL、SQLite - **UI 框架**:Bootstrap 5 - **测试**:xUnit + Moq ## 项目结构 ``` ElibBlazor/ ├── Components/ # Blazor 组件 │ ├── Pages/ # 页面组件 │ │ ├── Home.razor │ │ ├── BooksIndex.razor │ │ ├── BookEditor.razor │ │ ├── ReadersIndex.razor │ │ ├── ReaderEditor.razor │ │ ├── BorrowsIndex.razor │ │ ├── BorrowCreate.razor │ │ ├── CategoriesIndex.razor │ │ ├── CategoryEditor.razor │ │ └── Login.razor │ ├── Layout/ # 布局组件 │ ├── Shared/ # 共享组件 │ └── Routes.razor ├── Models/ # 数据模型 │ ├── Entities/ # 实体类 │ └── Dtos/ # 数据传输对象 ├── Services/ # 业务服务 │ ├── Auth/ # 认证服务 │ ├── Library/ # 图书业务 │ └── Ui/ # UI 服务 ├── Repositories/ # 数据仓储 ├── Infrastructure/ # 基础设施 ├── Middleware/ # 中间件 └── Options/ # 配置选项 ``` ## 快速开始 ### 环境要求 - .NET 8.0+ - Node.js 18+ (用于前端开发) ### 配置数据库连接 在 `appsettings.json` 中配置数据库: ```json { "Database": { "Provider": "Sqlite", "ConnectionString": "Data Source=elib.db" } } ``` 支持的数据 Provider: - `Sqlite` - 默认,轻量级文件数据库 - `MySql` - MySQL 数据库 - `PostgreSQL` - PostgreSQL 数据库 ### 运行项目 ```bash # 还原依赖 dotnet restore # 运行项目 dotnet run ``` 首次运行时会自动初始化数据库并创建默认管理员账户。 ### 默认管理员 - 用户名:`admin` - 密码:`admin123` ## 核心业务逻辑 ### 图书借阅流程 1. 管理员创建读者档案 2. 录入图书信息及库存 3. 读者借书时创建借阅记录 4. 系统检查图书库存和读者状态 5. 借阅到期后进行归还处理 ### 数据校验 - 图书删除:需确保无在借记录 - 读者删除:需确保无活跃借阅 - 借阅数量:不可超过库存总数 ## API 文档 ### 服务接口 | 服务 | 接口 | 描述 | |------|------|------| | IBookService | GetPagedAsync | 分页获取图书列表 | | IBookService | SaveAsync | 保存图书 | | IBookService | DeleteAsync | 删除图书 | | IReaderService | GetPagedAsync | 分页获取读者列表 | | IBorrowService | BorrowAsync | 创建借阅记录 | | IBorrowService | ReturnAsync | 归还图书 | | IAuthService | ValidateCredentialsAsync | 验证登录凭证 | ## 测试 项目包含完整的单元测试,覆盖核心业务逻辑: ```bash # 运行测试 dotnet test ``` 测试覆盖: - 认证服务测试 - 图书服务测试 - 借阅服务测试 - 分类服务测试 - 读者服务测试 ## 配置说明 ### 数据库配置 ```csharp public class DatabaseOptions { public string Provider { get; set; } = "Sqlite"; public string ConnectionString { get; set; } = ""; } ``` ### 认证配置 管理员账户信息在首次启动时自动创建,可通过 `AuthConstants` 类修改默认账号。 ## 许可证 MIT License