# 第16组 .Net期末项目 **Repository Path**: lkdewanye/fkunet ## Basic Information - **Project Name**: 第16组 .Net期末项目 - **Description**: 本项目是为完成《NET 程序设计与开发》课程期末考核而开发的应用程序。通过该项目,实践了.NET 开发中的 [关键技术点,例如:面向对象设计、数据访问层封装、MVC 架构模式、依赖注入等],实现了 [具体业务场景,例如:用户注册登录、数据增删改查、报表统计、权限控制等] 核心功能,达到了课程对综合应用能力的要求。 - **Primary Language**: C# - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-10 - **Last Updated**: 2025-11-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 第 16 组 .NET 期末项目 · 高校员工餐饮信息管理系统 > 课程:《.NET 程序设计与开发》 > 成员:16 组全体 > 运行环境:Windows 10/11 + .NET 8 + SQL Server 2019+ > 演示地址:https://gitee.com/lkdewanye/fkunet(代码仓库) --- ## 一、项目简介 高校员工餐饮信息管理系统(Catering Management System,CMS)是一套面向高校后勤处的 **B/S 端后台管理系统**,用于统一管理校内 20+ 食堂、500+ 档口、2000+ 员工的 **基础信息、排班、健康证、菜品留样、消费报表** 等业务。 本系统为期末综合演练项目,重点实践了: - 领域驱动设计(DDD)+ 整洁架构 - ASP.NET Core 8 MVC + Razor Pages 混合模式 - EF Core 8 Code First + 多租户分库分表 - AutoMapper、FluentValidation、MediatR 等主流组件 - JWT 双 Token + 基于策略的权限控制(RBAC) - Serilog 日志 → Seq 可视化 - xUnit + Moq 单元测试 & 集成测试(覆盖 78%) - Git-Flow 工作流、CI(Gitee Go)+ 代码质量门(SonarCloud) --- ## 二、功能清单(已完成 MVP) | 模块 | 核心功能点 | |---|---| | 系统管理 | 租户管理 / 角色权限 / 菜单管理 / 审计日志 | | 员工中心 | 员工 CRUD、批量导入、人脸头像、健康证到期提醒 | | 食堂档案 | 食堂-档口-窗口三级结构、档口评分、营业执照 OCR 识别 | | 排班考勤 | 排班模板、自动排班、扫码签到、考勤报表 | | 菜品留样 | 留样拍照、二维码追溯、48h 预警、一键导出 PDF | | 消费报表 | 按日/月/档口/员工多维汇总、图表可视化、Excel 导出 | | 消息中心 | 站内信 + 邮件 + 企业微信机器人推送 | --- ## 三、技术架构 ``` ┌-------------------------┐ │ Presentation (MVC) │ ← Razor+Bootstrap5+AdminLTE ├-------------------------┤ │ Application (CQRS) │ ← MediatR+FluentValidation ├-------------------------┤ │ Domain (Entity) │ ← 富领域模型+规约模式 ├-------------------------┤ │ Infrastructure │ ← EF Core、Serilog、Jwt、AliOss └-------------------------┘ ``` - **数据库**:SQL Server 2019(本地开发可转 SQLite) - **缓存**:MemoryCache + Redis(可选) - **文件存储**:本地 / 阿里云 OSS(配置开关) - **双端入口**: - PC 后台:/`Admin` - 员工小程序:/`Wx`(提供 Swagger 版 OpenAPI) --- ## 四、快速开始(本地开发) ### 1. 克隆代码 ```bash git clone https://gitee.com/lkdewanye/fkunet.git cd fkunet ``` ### 2. 安装 SDK & 工具 - [.NET 8 SDK](https://dotnet.microsoft.com/download) - SQL Server 2019 LocalDB(或 SQLite) - Node.js 18(前端构建,可选) ### 3. 还原 & 初始化数据库 ```bash # 还原包 dotnet restore # 生成数据库(Code First) cd src/CMS.Infrastructure dotnet ef database update -s ../CMS.Web/CMS.Web.csproj ``` > 默认连接串在 `appsettings.Development.json` 中,可改 SQLite 直接跑。 ### 4. 启动 ```bash cd ../CMS.Web dotnet run ``` 浏览器打开 https://localhost:7001 默认超级管理员 `sa / 123456`(首次登录强制改密) --- ## 五、部署到 Linux(Docker 一键) ```bash # 根目录已提供 Dockerfile & docker-compose.yml docker-compose up -d ``` 镜像包含: - `mcr.microsoft.com/dotnet/aspnet:8.0` - `sqlserver:2019-latest`(开发版) 端口映射: - 80 → 5000(应用) - 1433 → 1433(数据库) --- ## 六、测试 ```bash # 单元测试 dotnet test tests/CMS.Tests/CMS.Tests.csproj # 集成测试(将自动拉起 TestServer + SQLite) dotnet test tests/CMS.IntegrationTests/CMS.IntegrationTests.csproj ``` --- ## 七、常见问题 FAQ | 现象 | 解决 | |---|---| | 数据库连接失败 | 检查连接串,或改 `UseSqlite` | | 健康证提醒邮件发不出 | 在 `appsettings.{Env}.json` 配置 SMTP | | 上传大文件 413 | `nginx` 客户端体大小调大 | | 强制推送被拒绝 | 见 [Gitee 推送失败排查](https://gitee.com/help/articles/4114) | --- ## 八、更新日志 - 2024-06-10 v1.0.0 完成 MVP,提交课程验收 - 2024-06-15 v1.0.1 修复排班冲突算法、新增考勤日历视图 - 2024-06-20 v1.1.0 接入微信小程序、支持扫码签到 --- ## 九、贡献指南(欢迎 PR) 1. Fork 本仓库 2. 新建分支 `feat/功能名` 或 `fix/问题简述` 3. 编码 + 编写对应单元测试 4. Push 后提交 Pull Request,CI 绿灯即可合并 --- ## 十、协议 MIT © 2024 第 16 组 .NET 期末项目 --- > 如有疑问请提 Issue,或联系 **dewanye@fk.edu.cn**