# AARC **Repository Path**: au114514/aarc ## Basic Information - **Project Name**: AARC - **Description**: 基于vue3+dotnet的web端线路图绘制工具 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 42 - **Forks**: 18 - **Created**: 2024-08-21 - **Last Updated**: 2026-09-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
先进型抽象线路图画布
Advanced Abstract Route Canvas
## ⚠重大架构调整⚠ 本项目于`2026/9/3`发生了重大架构调整,原`aarc`目录被**拆分**为`aarc-core`和`aarc-web`。Fork 项目如果需要同步更新,详情请查看 https://aarc.jowei19.com/#/decoupling-upstream-alert aarc 核心部分已分离,可自由移植到各种外围实现,例如 electron 或 tauri,或接入自己设计的保存/权限控制/分享/评论功能。 外围实现适配指南:`aarc-core\README.md` ## 使用地址 http://aarc.jowei19.com ## 项目地址 [Gitee(本体)](https://gitee.com/au114514/aarc) [Github(自动同步镜像)](https://github.com/Aurouscia/aarc) - 参与贡献:请查看本文件下面的[贡献代码](#贡献代码)部分 - 寻求帮助:请查看本文件下面的[帮助](#帮助)部分 - 给予鼓励:请在github上给我点个⭐️star,非常感谢! ## 主要功能 - 绘制线条角度为45度整数倍的线路图,以及车站、水体、出站换乘、线路列表等内容 - 客户端跨平台:支持在所有类型设备(PC/平板/手机)上进行编辑,可双指或滚轮缩放视角 - 服务端跨平台:支持在 linux 或 windows 服务器部署 ## Roadmap 见 http://aarc.jowei19.com 的首页 ## 架构 - 前端:vue3 + vite + ts - 后端:aspNetCore - 双向即时通讯:signalR - ORM:entityFrameworkCore - api文档和客户端代码生成:NSwag ## 开发和部署 ### 前提条件 1. (必需)后端开发环境(二选一),确保`dotnet sdk 10.0`可用(ide一般会为你安装) - [Visual Studio](https://visualstudio.microsoft.com/zh-hans/) 尽可能新版+web应用开发负载 - [JetBrains Rider](https://www.jetbrains.com/zh-cn/rider/) 尽可能新版 2. (必需)[node客户端](https://nodejs.org/en) 尽可能新版,并确认命令行中有npm命令可用 3. [git客户端](https://git-scm.com/downloads) 用来下载代码和提交更新 4. [visual studio code](https://code.visualstudio.com/download)(和第一条是两个东西)用来编辑前端代码 5. 一台服务器,以及关于“如何开网站”的基本常识(docker+nginx 或 iis) ### 开发步骤 过程中遇到任何问题,请看本文[帮助](#帮助)部分 1. 下载代码文件 - 如果使用git,在命令行中输入`git clone 【本仓库链接】` 2. 进入前端目录(`/aarc-web`),按照该目录下的`README.md`文件进行操作,编译前端代码 - 编译完成后,会自动输出到后端的`wwwroot`目录下 3. 双击项目根目录的sln文件,进入vs或rider 4. 生成/更新数据库架构 - 使用ef工具更新数据库架构之前,必须先将配置中的`Db:Type`和`Db:ConnStr`设置好 - 默认使用 sqlite 无需动配置 - db 文件会创建到 /Data 目录 - vs:顶部栏-工具-Nuget包管理器-包管理器控制台,在控制台中输入`update-database` - rider:资源管理器-右键AARC项目(注意是项目不是解决方案)-EntityFrameworkCore-更新数据库 5. 修改配置(资源管理器中找到`appsettings.json`) - 如果需要保存配置到git,直接修改(注意其中“必须修改”的部分) - 如果不想保存配置到git,可选择新建: - `appsettings.Development.json`(git忽略、仅本地调试) - `appsettings.Production.json`(git忽略、仅生产环境) - `appsettingsLocal.json`(git忽略) 上述四个文件格式完全一样 6. 点击顶部绿色启动按钮启动调试 7. 开发 ### 部署步骤(linux 服务器) 1. 服务器上安装 [Docker](https://docs.docker.com/engine/install/) 2. 克隆代码到服务器 ```bash git clone 【本仓库链接】 cd aarc ``` 3. 构建镜像 ```bash docker build -t aarc . ``` 4. 启动容器(示例:映射到主机的 8080 端口) ```bash docker run -d \ --name aarc \ -p 8080:8080 \ -v $(pwd)/data:/app/Data \ --restart unless-stopped \ aarc ``` - `-v $(pwd)/data:/app/Data`:将数据库等数据持久化到主机目录(自行选择合适的位置) - 首次启动后,必须进行一次[更新数据库架构](#更新数据库架构) 5. 使用 nginx 反向代理到 8080 端口,配置 SSL 证书 ### 部署步骤(windows 服务器) 1. 停止调试,选择导出位置和方式 - vs:点击顶部栏`生成-发布` - rider:资源管理器-右键AARC项目-发布 2. windows服务器上安装`.net10.0 hosting bundle`(dotnet官网可以下载到) 3. 把导出的程序移动到服务器上(建议使用webDeploy,也可以直接用远程桌面的复制粘贴),并给予Users用户组该文件夹的控制权限,用IIS新建网站并指向该文件夹 - 服务器上第一次启动后,必须进行一次[更新数据库架构](#更新数据库架构) 4. 尝试启动并进入网站 5. 特别注意:不要让 IIS 的 Idle Time-out(默认20分钟)小于 AARC 的心跳机制间隔(默认3分钟)确保有人在编辑时,进程不被回收 ### 初始化账号 1. 记住在`appsettings.json`(或其变体)中填写的`MasterKey` 2. 在地址栏中输入`<域名>/#/sudo`,进入管理页面 3. 点击“初始化管理员账号” 4. 输入管理员账号名称和`MasterKey`,即可初始化账号 5. 复制或记住生成的密码后,才能关闭页面 ### 更新数据库架构 如果更新代码后,发现“xx列/xx表不存在”的错误,说明数据库架构版本落后 1. 记住在`appsettings.json`(或其变体)中填写的`MasterKey` 2. 在地址栏中输入`<域名>/#/sudo`,进入管理页面 3. 点击“更新数据库架构” 4. 输入`MasterKey`,即可更新数据库架构 ## 贡献代码 - 本项目可以单独启动前端调试,请参考前端目录中的README.md文件 - 请**与作者充分qq沟通后**再修改代码和提出pr,避免做浪费时间的无用功,作者有义务避免代码库野蛮生长,所以会拒绝计划之外的pr - 请查看项目根目录的`commit-msg.mjs`,并按照其中的指示设置git钩子,确保提交信息符合conventional commits规范 - 与作者交流,请加本文件[帮助](#帮助)部分中可以联系作者的那个qq群 ## 法律风险 **本部分仅需“部署者”阅读,使用者无需关心** ### AutoMapper 本项目的依赖项`AutoMapper`(15.0.0+)属于`Lucky Penny Software LLC.`,使用dual commercial/OSS许可证 详情请访问 https://automapper.io 并检查其中“免费使用”的条件 - 可:在上述链接获取许可证key并填入配置文件的`AutoMapper:LicenseKey`处 - 或:确认自己满足“免费使用”条件并自行承担法律风险 ## 帮助 **部署/开发遇到问题,请加qq群 798877093 联系作者** **使用遇到问题,请加qq群 1083848751 联系作者或其他用户** ## 许可证 - **Apache-2.0** - 可修改源码 - 无需开源衍生版本 - 可商用 - 必须保留版权信息 - 作者免责