/Online-Legal-Consulting-System

网上法律咨询系统Spring Boot开发项目,项目文件包括需求分析文档,项目源代码,系统测试文档。部分功能使用了文本挖掘算法与深度学习模型。

Primary LanguageJavaMIT LicenseMIT

网上法律咨询系统

网上法律咨询系统的开发项目,项目文件包括需求分析文档,项目源代码,系统测试文档,部分功能使用了文本挖掘算法与深度学习模型。

Latest News

  • (2020.06.14)
    • 大部分内容都完成了,但是由于算法模型的代码还没有整理好,“智能预测”模板的功能还没有实现。
  • (2020.06.19)
    • 完成了“智能预测”模块的功能。
    • 修复了用户对话时UI的BUG。
    • 增加了律师图谱的功能,律师用户可以选择自己擅长的民事诉讼领域,可以选择为自己增加个人简介;所有用户都可以查到注册的律师用户(需要律师填写擅长领域才能查到),并且发起会话。
    • 增加了用户注册时,对手机号和身份证号的表单验证。
    • 深度学习部分的代码还未开源,只给出python接口,和预测接口。下载好model文件夹,将其放在/legalsys/src/main/resources/python目录下

开发环境

  • 开发语言: 后端 - Java(jdk1.8),Python(3.7),前端 - Html
  • 使用框架:Spring Boot(2.1.3),MyBatis,Junit,pytorch(1.4)
  • 数据库:mysql(8.0)
  • 项目管理:Maven
  • IDE:JetBrains Intelij IDEA 2020
  • 开发系统:Windows10
  • 网络服务器:Tomcat(9.0)
  • 客户端浏览器:尽量使用Google Chrome,目前已知IE浏览器会出现前端格式错误的问题

代码结构

legalsys
├─src 
│	├─main
│		├─java
│			├─com.huidong.legalsys
│				├─aspect(权限管理)
│					├─LoginAspect.java
│				├─configuration
│					├─DataSourceConfiguration.java
│					├─UploadFileConfiguration.java
│				├─controller(业务表现层)
│					├─ConsultController.java
│					├─LoginController.java
│					├─ManageController.java
│					├─PenallawController.java
│					├─SessionController.java
│					├─StatisticsController.java
│				├─dao(数据访问层)
│					├─ConsultDao.java
│					├─ConvrDao.java
│					├─LoginDao.java
│					├─SessionDao.java
│					├─StatureDao.java
│					├─UserDao.java
│				├─domain(实体层)
│					├─Consult.java
│					├─Convr.java
│					├─ConvrContent.java
│					├─Error.java
│					├─Login.java
│					├─Session.java
│					├─Stature.java
│					├─User.java
│				├─enumeration
│					├─ConsultTypeEnum.java
│					├─ErrorEnum.java
│					├─LoginStatusEnum.java
│					├─RegisterTypeEnum.java
│					├─SessionStatusEnum.java
│				├─exception
│					├─LegalsysException.java
│				├─handle
│					├─ExceptionHandle.java
│				├─listener(在线人数监听)
│					├─HttpSessionListener.java
│					├─RequestContextListener.java
│					├─ServletContextListener.java
│				├─service(业务逻辑层)
│					├─ConsultService.java
│					├─LoginService.java
│					├─ManageService.java
│					├─PenallawService.java
│					├─SessionService.java
│					├─StatisticsService.java
│					├─UploadService.java
│				├─util
│					├─ErrorUtil.java
│				├─LegalsysApplication.java(项目启动类)
│		├─resources
│			├─mapper(Mybatis映射)
│				├─ConsultMapper.xml
│				├─ConvrMapper.xml
│				├─LoginMapper.xml
│				├─SessionMapper.xml
│				├─StatureMapper.xml
│				├─UserMapper.xml
│			├─python
│				├─model(存放深度学习模型)
│				├─preprocess.py
│				├─predictor.py
│			├─static
│				├─css
│					├─fonts
│					├─style.css(html配置文件)
│				├─images(存放图片文件)
│				├─stature(存放刑法数据)
│			├─templates(html文件)
│			├─application.yml(配置文件)
│			├─application.properties(配置文件)
│		├─resourcesupload(律师执照上传路径)
├─test(单元测试的一些代码,写的比较乱,所以部署的时候没放在src目录下)
├─init.sql(mysql新建数据库及表单)
├─pom.xml(Maven项目配置文件)

项目部署

    • cd legalsys目录
    • 运行mysql -u root -p,输入密码
    • 运行source init.sql建立数据库,初始化表单
    • IDEA中打开legalsys项目文件
    • 右键点击pom.xml,点击Maven,点击Reimport
    • 修改项目的名字问legalsys
    • 设置Spring Boot Configuration :
    • 点击Edit Configuration,从模板Templates新建Spring Boot,Main class选择com.huidong.legalsys.LegalsysApplication,Use classpath of modules选择legalsys文件夹
    • 设置Tomcat Configuration:
    • 从模板Templates新建Tomcat Local
    • 找到File - Project Structure - Project Settings - Artifacts,新建legelsys:war exploded
    • 在刚才新建的Tomcat Local,Before launch中添加刚才新建的legelsys:war exploded artifact
    • 添加Mysql数据库连接,输入用户名root,密码******,数据库名称legalsys
    • maven clean install 部署项目
    • 安装python3,pytorch1.4环境,推荐通过anaconda配置
    • 添加anaconda环境变量
    • cmd运行cd legalsys根目录/src/main/resources/python
    • 运行conda activate (你配置的pytorch1.4环境名)
    • 运行python predictor.py启动深度学习模型计算的服务

文档结构

​ 如果想要了解系统的设计过程,包括需求分析文档,静态模型,动态模型,数据库设计,测试文档,运行界面,可以查看“文档”目录下的“功能思维导图.xmind”和“文档信息.docx”。

​ “文档信息.docx”的结构为:

文档信息.docx
├─系统名称 
├─开发及运行环境
├─系统简介
│	├─功能性需求
│	├─非功能性需求
├─软件体系结构
├─系统完成情况
├─分层UseCase模型
├─类的描述
├─静态模型
│	├─分析类图
│	├─设计类图
├─动态模型
│	├─活动图
│	├─状态图
│	├─时序图
├─主要源代码以及可执行文件
├─实现模型
│	├─构件图
│	├─部署图
├─数据库表单
├─ER图
├─单元测试
├─集成测试
├─系统功能性测试

Acknowledgement

  • 开发之前没有相关经验,所有东西都是现学现卖,所以对spring boot的底层逻辑不清楚,前端开发的方法也不了解。虽然项目简单,但是代码中肯定有诸多不正确的地方,恳请大家能够包容,欢迎批评指正。

  • 整个开发过程借鉴了qianqianjunIT技术博客项目的很多方面,该项目质量比较高,如果是想要学习spring boot开发,熟悉整个开发流程的话,可以参考该项目。