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