基于.NetCore+Vue的贫困地区儿童资助系统

ops/2025/1/24 1:26:58/

 1.业务需求

1.1 业务角色分析

贫困地区儿童资助系统分为用户和管理员两个角色。管理员具有用户管理、贫困儿童信息管理、儿童参与项目管理、资助项目管理、社会资助记录管理、发放记录、统计分析功能;用户具有贫困儿童登记(代填)、通知公告、贫困儿童公示、贫困儿童项目参与、查个人中心功能。

1.2 业务需求分析

用例图,是用于描述系统功能和用户需求的一个工具,通过用例图,可以直观的展示系统的参与者和系统的关系。贫困地区儿童资助系统的中的参与者分为管理员和用户。用户可以通过系统进行注册登录系统,可以在系统中查看所有的贫困儿童信息,查看系统的通知,用户可以直接进行项目资助或者指定资助项目的某个儿童。也可以帮助儿童进行提交资助申请,成为资助儿童。作为管理员,可以去管理该系统的所有人员,维护系统通知,及时为大家通知最新的资助信息,上传系统的封面轮播图,对贫困儿童进行管理,对资助项目进行管理,对社会资助记录、发放记录进行管理,对所有的资助情况有跟踪记录。

2 功能需求

统管理模块

  1. 用户管理:管理员可以添加、修改和删除系统用户账户,查看用户列表信息,通过关键字搜索用户,并根据其角色分配相应的权限。
  2. 系统通知:管理员发布系统级别的通知消息,如系统维护、升级通知和重要通知等,确保有用户可以及时的被通知。
  3. 封面管理:管理员进行上传和更换系统的封面图片,以保持界面的更新和吸引力。

贫困儿童管理模块:

  1. 查看贫困儿童信息:提供详细的儿童个人信息,包括家庭背景、教育状况等。
  2. 移除贫困儿童:允许管理员从系统中移除不再需要资助或有其他原因需要移除的的儿童信息。
  3. 是否显示贫困儿童:管理儿童信息在前端界面的公开展示与否。
  4. 贫困儿童登记:提供一个表单,用于录入新发现的贫困儿童信息至系统。
  5. 贫困儿童公示:将资助儿童的信息以列表的形式进行公示。

资助项目管理模块:

  1. 删除资助项目:管理员可以进行移除已完成或取消的资助项目。
  2. 参与项目的儿童:列出所有参与特定资助项目的儿童名单,并提供管理功能。
  3. 修改资助项目:让管理员能够更新资助项目的详细信息,如资金使用情况、进度更新等。
  4. 搜索资助项目:通过关键词快速找到想要资助的项目。
  5. 参与资助项目:使其能选择特定的儿童或项目进行资助。
  6. 添加贫困儿童:向项目中添加新的贫困儿童作为资助对象。
  7. 删除贫困儿童:从特定资助项目中移除贫困儿童。
  8. 我的捐赠:供资助者查看自己过去的捐赠记录和当前捐赠状态。

记录管理模块:

  1. 社会资助记录:详细记录社会各界对贫困儿童的资助情况,包括资助金额、时间、资助者信息等。
  2. 发放记录:跟踪和记录资助款项的分配和实际发放情况,确保资助的正确使用。

3 系统总体设计

3.1系统功能结构

       贫困儿童资助系统通过现代信息技术手段,为贫困地区的儿童提供有效的资助管理服务,该系统主要分为四个模块,系统模块包含用户管理,系统通知,封面通知;贫困儿童管理模块包含查看贫困儿童信息,移除贫困儿童,可设置是否显示贫困儿童信息,贫困儿童等级,公示儿童信息;资助项目管理模块包含对资助项目增删改查,查看参与项目的儿童,查看我的捐赠;记录管理模块包含社会资助记录,发放记录。

4 系统开发环境搭建

4.1 硬件配置

CPU:Intel(R) Core(TM) i5-8250U

内存:大于8GB

硬盘:SAMSUNG MZNLN128HAHQ-000H1

显卡:Intel(R)UHD Graphics 620

4.2 软件环境配置

操作系统:Windows10

开发工具:Visual Studio 2022,VScode

数据库管理:SQL Server,SQL Server Management

5系统功能实现

5.1 贫困儿童

管理员拥有对贫困儿童进行管理的权力。管理员可以决定是否在前台展示贫困儿童的信息,通过关键字搜索查询贫困儿童的信息。管理员还可以查看贫困儿童的详细信息,包括他们的背景、家庭情况以及需求等,以便更好地了解他们的困境并提供帮助。管理员还可以根据需要对由于信息错误或者不再需要展示等原因删除贫困儿童的信息。

用户可以在前台界面中看到一个专门展示贫困儿童信息的公示界面。这个界面设计得非常直观,让用户能够一目了然地了解到贫困儿童的基本情况。在这个公示界面上,用户可以看到每个贫困儿童的照片、姓名、年龄、性别等基本信息。这些信息以列表的形式展示,方便用户快速浏览和了解每个贫困儿童的具体情况。

关键代码如下: 

//查询贫困儿童表var items = DbContext.Queryable<Children>().WhereIF(input.Name.IsNotNullOrNotWhiteSpace(), x => x.Name.Contains(input.Name)).WhereIF(input.Gender.IsNotNullOrNotWhiteSpace(), x => x.Gender.Contains(input.Gender)).WhereIF(input.DateOfBirthRange.HasItem(), x => x.DateOfBirth >= input.DateOfBirthRange[0] && x.DateOfBirth <= input.DateOfBirthRange[1]).WhereIF(input.HouseholdRegistrationAddress.IsNotNullOrNotWhiteSpace(), x => x.HouseholdRegistrationAddress.Contains(input.HouseholdRegistrationAddress)).WhereIF(input.CurrentResidentialAddress.IsNotNullOrNotWhiteSpace(), x => x.CurrentResidentialAddress.Contains(input.CurrentResidentialAddress)).WhereIF(input.FamilyBackground.IsNotNullOrNotWhiteSpace(), x => x.FamilyBackground.Contains(input.FamilyBackground)).WhereIF(input.HealthCondition.IsNotNullOrNotWhiteSpace(), x => x.HealthCondition.Contains(input.HealthCondition)).WhereIF(input.FamilyHead.IsNotNullOrNotWhiteSpace(), x => x.FamilyHead.Contains(input.FamilyHead)).WhereIF(input.FamilyHeadPhone.IsNotNullOrNotWhiteSpace(), x => x.FamilyHeadPhone.Contains(input.FamilyHeadPhone)).WhereIF(input.Photo.IsNotNullOrNotWhiteSpace(), x => x.Photo.Contains(input.Photo)).WhereIF(input.AuditStatus.HasValue, x => x.AuditStatus == input.AuditStatus).WhereIF(input.IsPutaway.HasValue, x => x.IsPutaway == input.IsPutaway).WhereIF(input.CreatorId.HasValue, x => x.CreatorId == input.CreatorId).WhereIF(input.Id.HasValue, x => x.Id == input.Id).OrderByDescending(x => x.CreationTime).Select<ChildrenDto>().ToPageList(input.Page, input.Size, ref totalCount);foreach (var item in items){//查询加入的项目var projectIds=DbContext.Queryable<FundingChildren>().Where(x => x.ChildrenId == item.Id&&x.AuditStatus== AuditStatus.审核成功).Select(x => x.FundingProjectId).ToList();item.FundingProjectList = DbContext.Queryable<FundingProject>().Where(x => projectIds.Contains(x.Id)&&x.IsCompleted==false).Select<FundingProjectDto>().ToList();item.UserDto = DbContext.Queryable<AppUser>().Where(x => x.Id == item.UserId).Select<AppUserDto>().ToList().FirstOrDefault() ?? new AppUserDto();}

5.2 资助项目

管理员能够对资助项目进行管理。可以查看包括但不限于资金的使用情况、项目的进度更新等。通过这样的操作,管理员可以确保项目信息的及时性和准确性,以便更好地管理和监督资助项目的执行情况。管理员还可以查看该项目下有多少个儿童参加了此项目。这一功能可以帮助管理员了解项目的实际参与情况,从而评估项目的影响力和覆盖范围。通过查看参加项目的儿童数量,管理员可以更好地了解项目的实施效果,并据此做出相应的调整和决策。管理员还具备对参加了的儿童进行移除的权限。例如他们可能已经离开了该地区或者不再符合项目的参与条件。管理员可以通过系统界面上的相应功能,选择要移除的儿童,并进行移除操作。


用户可以查看所有的资助项目,用户可以对感兴趣的项目进行捐赠,在捐赠过程中,需要填写一些必要的资料,以便能够记录捐赠信息并进行后续的处理。如图5.4-5.5所示。

关键代码: 

 var items = DbContext.Queryable<FundingProject>().WhereIF(input.Title.IsNotNullOrNotWhiteSpace(), x => x.Title == input.Title).WhereIF(input.ProcessStartRange.HasValue, x => x.Process >= input.ProcessStartRange).WhereIF(input.ProcessEndRange.HasValue, x => x.Process <= input.ProcessEndRange).WhereIF(input.Files.IsNotNullOrNotWhiteSpace(), x => x.Files == input.Files).WhereIF(input.Id.HasValue, x => x.Id == input.Id).OrderByDescending(x => x.CreationTime).Select<FundingProjectDto>().ToPageList(input.Page, input.Size, ref totalCount);

5.3 社会资助记录

管理员可以查看所有社会资助记录,包括每条记录的详细信息,如资助项目名称、资助数量、物品种类等。管理员可以检查每条资助记录是否已经全部发放,系统应显示每个项目的发放状态,包括已发放和未发放的数量。管理员可以查看与特定资助项目相关的所有记录,以便对该项目的整体进展进行监控和管理。

用户可以在个人中心或相应的捐赠页面查看自己捐赠的物品列表,包括物品名称、数量、是否发放等消息。用户也可以选择隐藏自己的捐赠信息,以便保护个人隐私。在捐赠物品尚未发放之前,用户应有权取消自己的捐赠。

关键代码:     

      //查询社会资助记录表var items = DbContext.Queryable<FundingProjectDet>().WhereIF(input.Name.IsNotNullOrNotWhiteSpace(), x => x.Name.Contains(input.Name)).WhereIF(input.Unit.IsNotNullOrNotWhiteSpace(), x => x.Unit.Contains(input.Unit)).WhereIF(input.CreatorId.HasValue, x => x.CreatorId == input.CreatorId).WhereIF(input.IsComm.HasValue, x => x.IsComm == input.IsComm).WhereIF(input.QtyStartRange.HasValue, x => x.Qty >= input.QtyStartRange).WhereIF(input.QtyEndRange.HasValue, x => x.Qty <= input.QtyEndRange).WhereIF(input.Remark.IsNotNullOrNotWhiteSpace(), x => x.Remark.Contains(input.Remark)).WhereIF(input.LinkName.IsNotNullOrNotWhiteSpace(), x => x.LinkName.Contains(input.LinkName)).WhereIF(input.Phone.IsNotNullOrNotWhiteSpace(), x => x.Phone.Contains(input.Phone)).WhereIF(input.Leave.IsNotNullOrNotWhiteSpace(), x => x.Leave.Contains(input.Leave)).WhereIF(input.Id.HasValue, x => x.Id == input.Id).WhereIF(input.FundingProjectId.HasValue, x => x.FundingProjectId == input.FundingProjectId).OrderByDescending(x => x.CreationTime).Select<FundingProjectDetDto>().ToPageList(input.Page, input.Size, ref totalCount);

5.2.4 发放记录

管理员可以查看所有发放记录,包括每条记录的详细信息,如资助项目名称、资助数量、发放的状态等。

用户实时跟踪自己捐赠物品的去向。一旦用户完成了捐赠行为,系统便会立即生成一份详细的记录,这份记录不仅包括了捐赠物品的基本信息,还详细展示了这些物品的流转情况。


http://www.ppmy.cn/ops/152609.html

相关文章

【C语言篇】深入探究 C 语言指针:揭开指针变量与地址的神秘面纱

我的个人主页 我的专栏&#xff1a;C语言&#xff0c;希望能帮助到大家&#xff01;&#xff01;&#xff01;点赞❤ 收藏❤ 目录 引言指针的基础概念 2.1 什么是指针2.2 指针的声明与初始化2.3 指针的存储模型与内存布局 指针的操作 3.1 获取地址与解引用操作3.2 指针的算术…

Unity——鼠标是否在某个圆形Image范围内

文章目录 前言一、示例总结 前言 在Unity中判断鼠标是否位于一个圆形区域内&#xff0c;你可以采用以下步骤实现。假设你已经有了一个带有圆形图片的UI元素&#xff08;如Image组件&#xff09;&#xff0c;并且这个圆形是完全填充了该UI元素的。 一、示例 1、获取鼠标位置&a…

Python 常用运维模块之OS模块篇

Python 常用运维模块之OS模块篇 OS 模块获取当前工作目录更改当前工作目录返回当前目录路径返回上一级目录路径递归生成目录路径删除目录创建目录删除目录列出特定目录下文件和子目录删除某个特定文件重命名某个文件获取某个文件/目录的信息输出目录路径分隔符输出文件行终止符…

1905电影网中国地区电影数据分析(一) - 数据采集、清洗与存储

文章目录 前言一、数据采集步骤及python库使用版本1. python库使用版本2. 数据采集步骤 二、数据采集网页分析1. 分析采集的字段和URL1.1 分析要爬取的数据字段1.2 分析每部电影的URL1.2 分析每页的URL 2. 字段元素标签定位 三、数据采集代码实现1. 爬取1905电影网分类信息2. 爬…

Yii框架中的路由配置:如何实现URL美化

在Yii框架中&#xff0c;路由配置是通过URL管理器&#xff08;UrlManager&#xff09;来实现的&#xff0c;而URL美化则是路由配置的一个重要应用。以下是如何在Yii框架中实现URL美化的具体步骤&#xff1a; 一、URL管理器配置 启用美化URL&#xff1a; 在Yii框架的配置文件…

Matlab实现TCN-LSTM时间卷积神经网络结合长短期记忆神经网络多特征分类预测(附模型研究报告)

Matlab实现TCN-LSTM时间卷积神经网络结合长短期记忆神经网络多特征分类预测&#xff08;附模型研究报告&#xff09; 目录 Matlab实现TCN-LSTM时间卷积神经网络结合长短期记忆神经网络多特征分类预测&#xff08;附模型研究报告&#xff09;分类效果基本描述程序设计参考资料 分…

【图像处理】——掩码

一、掩码的定义与本质 掩码是一种与原始数据&#xff08;通常是图像或矩阵&#xff09;具有相同形状的数组或矩阵&#xff0c;其元素用于控制对原始数据的操作。它本质上是一种筛选或过滤机制&#xff0c;通过对原始数据的每个元素与掩码中相应元素的组合操作&#xff0c;来决…

Ubuntu实时核编译安装与NVIDIA驱动安装教程(ubuntu 22.04,20.04)

1.编译前的准备(该部分操作在非实时核下) a.安装依赖项 sudo apt-get install build-essential bc curl ca-certificates gnupg2 libssl-dev lsb-release libelf-dev bison flex dwarves zstd libncurses-dev b.下载实时核文件 1.查看非实时核版本 2.在https://www.kernel.…