Skip to content

Helio-RC/A_Pair

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🪑 A_Pair - 安排

跨平台桌面座位安排与轮换系统
自动/手动排座 · 多数据源导入导出 · 策略引擎 · 插件扩展 · 历史快照回滚

GitHub release GitHub stars .NET License Repo size Top language QQ Group

ICON

Tip

💬 QQ 交流群761175549

  • 欢迎大家前来反馈问题、提出建议,或者一起吹水聊天!
  • 若Github的下载速度过慢,也可以进群下载。

✨ 核心功能

  • 多格式数据导入 — CSV、Excel(XLSX)、JSON 学生名单导入
  • 智能排座引擎 — 3 条内置策略管道执行:固定座位、前排轮换、随机填充;策略按优先级 Fill-in-Order 模型执行
  • 插件扩展 — 第三方可通过 DLL、Lua 脚本、C# 脚本编写自定义排座策略,拖入即用
  • 手动微调 — 拖拽交换座位,全功能撤销/重做
  • 多种布局 — 网格、环形/扇形、自由点教室布局;支持障碍物(柱子、讲台)
  • 多格式导出 — Excel、CSV、PDF、图片导出座位表
  • 历史快照 — 每次排座自动保存快照,支持回滚到任意历史版本
  • 配置驱动 — 策略优先级、布局参数、导出选项均可配置
  • 跨平台 — Windows / macOS / Linux 原生运行

人员管理功能演示

人员管理

会场管理功能演示

会场管理

策略配置功能演示

策略配置

座位安排与微调

座位安排与微调

快照与回滚

快照与回滚


📋 开发路线图

当前已完成核心业务逻辑(领域模型、策略引擎、数据导入导出、插件系统、快照管理)和大部分 UI 页面。详见 docs/Phases.md

  • Phase 1-3 — 领域建模、数据导入导出、内置策略
  • Phase 4-5 — 插件系统、Lua/C# 脚本支持
  • Phase 6 — 高级布局可视化、拖拽交互、命令模式(Grid/Polar/Freeform 布局、Canvas 预览、缩放平移、撤销/重做)
  • Phase 7 — 配置管理、存储、版本迁移(文件版本管理、迁移管线、快照回滚、快照完整性检测、确定性构建、页面导航管理)
  • Phase 8 — 测试覆盖、文档完善、打包发布

🚀 快速开始

Important

环境要求

  • .NET 10 SDK
  • Windows 11 / macOS 14+ / Ubuntu 22.04+(或其他 Linux 发行版)

构建与运行

git clone https://github.com/Helio-RC/A_Pair.git
cd A_Pair
dotnet build
dotnet run --project A_Pair.Presentation.Avalonia

运行测试

dotnet test

🤝 反馈与贡献

  • Bug 反馈:请在 GitHub Issues 提交,附上操作系统版本和复现步骤,最好能附上日志
  • 功能建议:欢迎提交 Feature Request
  • 界面美化:初代开发者审美不好,欢迎各位大能贡献 UI 设计和图标资源
  • 插件开发:参见 A_Pair.Plugins.Sdk/docs/README.md 插件开发指南 尚未完善 🚧 部分支持
  • 参与开发:参见 CONTRIBUTING.md 了解构建环境、项目结构和编码规范
  • AI 辅助开发:本项目使用 Claude Code & Deepseek V4 preview 辅助开发。项目级 AI 配置位于 CLAUDE.md,包含架构约定、代码模式和开发命令。建议 AI 开发者先阅读此文件和 docs/adr/ 中的架构决策记录

🧱 技术概要

.NET 10 + Avalonia 12 + CommunityToolkit.Mvvm,分层架构,外观模式统一入口,命令模式实现撤销/重做。

Presentation (Avalonia UI)  ← 用户界面、MVVM
        ↓  IApplicationFacade
Application                 ← 编排、策略管道、命令栈
   ↓            ↓
Core           Infrastructure
领域模型        文件 I/O、布局生成器
策略接口        导出器、仓库、迁移
职责
Core 领域实体(Student, Seat)、策略接口、领域服务
Application 外观模式入口、策略管道、插件管理、撤销/重做
Infrastructure CSV/Excel/JSON 导入导出、网格/环形/自由布局构建、PDF/图片导出、文件版本迁移
Presentation Avalonia 12 桌面 UI、MVVM(CommunityToolkit.Mvvm)、编译绑定

⚖️ 许可

MIT License © 2026 A_Pair Contributors

📚 项目文档

文档 说明
docs/INDEX.md 文档导航地图(修改文档前先查阅联动规则)
ARCHITECTURE.md 项目目标与架构设计
docs/Phases.md 实现阶段与详细规划
CONTRIBUTING.md 开发环境搭建与参与指南
CLAUDE.md AI 编码助手配置
CHANGELOG.md 变更日志
docs/adr/ 架构决策记录
Design_Spec.md UI 设计规范
Fluent_Icons.md 图标参考
Plugins.Sdk/README.md 插件开发 SDK 文档

Made with ❤️ by A_Pair Contributors

About

"A_Pair"/"安排" 是一个"一键排座"桌面工具。导入学生名单,选择会场布局(网格/环形/自由),运行策略引擎即可自动生成座位表。支持前排轮换、固定座位等策略,结果可导出为Excel/PDF/图片。所有快照自动保存,*随时回滚。

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Contributors

Languages