格记--引导型开放日记

格记–引导型开放日记

一、设计任务与要求

1.1 设计背景

​ 如今随着信息技术的快速发展和广泛应用,人们对于个人生活记录和管理的需求日益增长,使得更便捷的个人日记本系统成为当下迫切需要的服务。传统的纸质日记本或简单的移动设备已无法满足当代人们对于便捷性、安全性和高效性的需求。设计并开发一款基于SSM框架的引导型个人日记本系统,将有效地满足这些需求,提高个人的生活质量。

1.2 系统功能简介

​ 格记–引导型开放日记是一个使用Javaweb技术开发的在线日记平台。该系统是一个简单的在线日记分享、编辑平台。主要包含以下几个方面:登录注册,查看所有用户的公开日记,对公开日记进行搜索,管理个人发布的日记,对日记进行评论。

1.3 开发环境及要求

操作系统 Windows10
数据库 MySQL8.0.16
Web服务器 Tomcat9.0.54
开发工具 IDEA2020.3
Java运行环境 Java8

1.4 系统开发的目的

​ 格记日记系统的设计的目的是满足用户对于记录、管理和分享个人生活的需求。我们系统的目标在于为用户提供一个安全、便捷的平台,使他们能够记录和存储日常生活、情感、思想等内容。并具备查找、分类和评论的功能为用户提供一个交流互助的平套。通过这个系统,用户不仅可以记录生活中的精彩瞬间或者思想感悟,还能够方便地回顾这些珍贵的回忆。

​ 格记日记系统不仅仅是记录工具,更是一个见证用户成长过程的平台。它可以帮助用户更好地了解自己的成长和改变,提高自我认知和自我管理能力。通过回顾过往的日记内容,用户能够更清晰地观察自己的成长过程。在一篇篇自己编写的日记中,发现一种情感支持和心理健康的保障。它将陪伴用户度过人生中的喜怒哀乐,见证用户成长、转变和进步,帮助用户记录生活的点点滴滴,提高自我认知和情感管理的能力。

二、系统需求分析

2.1 系统功能模块

image-20241212160910243

2.2 功能性需求

  • 登录和注册:

    用户注册一个新账户,提供用户名和密码。

    已注册用户能够登录系统。

    管理员可使用管理员账号登录。

  • 创建日记:

    用户登录后,能够创建新的日记条目。

    日记条目包含标题、日期、时间、内容等信息。

  • 查看日记:

    用户可以查看以前创建的日记条目。

    且可以按日期、标题等方式进行排序和筛选。

    若不登陆,用户则可以浏览公开的日记。

  • 编辑和删除日记:

    用户可以编辑已存在的日记条目,删除不再需要的日记条目。

    用户可以编辑自己的评论,也可以评论公开的日记。

  • 备份和恢复:

    用户可以备份日记数据,以防止意外数据丢失。

    具备恢复功能,允许用户在需要时恢复备份的数据。

2.3 非功能性需求

  • 用户友好性:

    界面简洁直观,易于新用户上手。

  • 安全性:

​ 用户密码加密存储,以保护用户数据的安全性。

​ 用户的日记数据受到访问控制,通过身份验证的用户可以查看和修改。

​ 管理员账号登陆可以管理所有人的公开日记。

  • 可扩展性:

​ 系统易于扩展,为将来添加新的功能或改进现有功能提供便利。

  • 性能:

​ 系统具有良好的性能,能够在短时间内响应用户请求并处理日记数据。

  • 稳定性:

​ 系统应稳定可靠,能够长时间运行尽量避免崩溃或错误。

三、总体设计方案

3.1 系统功能分析及设计思路

3.1.1 系统功能分析

​ 日记系统可以记录生活中的点滴细节思考和感悟,同时也是现如今压力越来越大的情况下一个很好的情感出口。在格记日记系统诞生之初,我们就对其有着清晰的定位。格记作为一个线上日记管理系统有着比传统纸质日记更便捷,不易丢失和损坏等优点。因此作为一个线上日记系统,一定要确保用户数据的安全性,加强隐私保护的同时也要确保数据被即使安全的保存在云端,确保用户的数据不会丢失。我们对格记进行以下的功能设置来帮助用户更好的使用线上日记系统

​ 分类管理:格记提供一些固定标签或者自定义标签帮助用户划分和查找自己的日记。

​ 便捷分享:用户可以将自己的日记分享给朋友或公开发布,增加交流和分享的机会。也可以评论和转发他人公开权限的日记。

​ 匿名浏览:提供心灵交流和呼吸的空间,不登陆可匿名浏览他人公开日记。

​ 引导型记录:为用户提供问题和模板帮助用户更便捷的记录自己的一天。

​ 管理方式方便:登录分为用户账号登录和管理员账号登录,方便管理人员后续跟进和维护

3.1.2 设计思路

​ 日记系统的总体设计思路主要从记日记的用户角度出发,发现和整理用户的实际需求并按需求进行功能设计。首先在用户登录或者注册后,可通过个人空间管理的功能,对日记进行管理。主要包括日记的添加、编辑、删除、查询等功能。用户还可对自己的日记进行分类管理,并可根据分类将其显示在个人空间中。通过本项目的设计与实现,旨在为用户提供一个高效、安全、便捷的线上日记管理平台,促进用户之间的交流与分享,提升用户的记录和管理体验。

3.2 系统整体框架

​ 该系统数据库采用关系型数据库MySQL8,后端采用SSM架构,前端采用Thymeleaf模板引擎。

3.2.1 数据库设计

​ 如图所示为diary_ssm数据库的整体设计方案。

image-20241212161453691

表数据分析:

  • 用户表(user):用户id、用户名、密码、邮箱、日记地址、昵称、创建时间、活跃时间、角色权限、头像位置。
  • 内容表(content):日记id、分类id、标题、缩略名、创建时间、修改时间、文章内容、是否推荐、作者id、文章类型、文章状态、访问量、缩略图、描述。
  • 分类表(category):分类id、分类名称、缩略图。
  • 评论表(comment):评论id、文章id、创建时间、作者、作者id、邮箱、日记地址、IP地址、评论内容、父评论。
  • 文件表(file):文件id、路径、作者id、文件状态、名称、类型、创建时间、修改时间、下载量、文件大小。
  • 日志表(log):日志id、浏览器名、操作系统名、访问api路径、IP地址、来源地址、访问时间、文章id。
  • 标签表(tag):标签id、标签名、总标签数。

3.2.2 后端SSM框架搭建

​ SSM框架是 Spring+ SpringMVC+ MyBatis的缩写,它是由 Spring和 MyBatis两大开放源码框架(SpringMVC是 Spring的一部分)组成的,经常被用来做一些相对简单的 Web工程的框架。与以前的 SSH (Spring+ Struts+ Hibernate)相比, SSM更轻便、更灵活,已经成为 Java Web开发的主流框架。

​ SpringMVC负责管理表现层的Handler。SpringMVC容器是Spring容器的子容器,因此SpringMVC容器可以调用Spring容器中的Service对象。

​ Spring负责事务管理,Spring可以管理持久层的Mapper对象和业务层的Service对象。由于Mapper对象和Service对象都在Spring容器中,所以可以在业务逻辑层通过Service对象调用持久层的Mapper对象。

​ Mybatis负责与数据库进行交互。

后端项目结构图:

image-20241212161544729

3.2.3 前端页面搭建

​ 前端采用Thymeleaf模板搭建,Thymeleaf是适用于Web和独立环境的现代服务器端Java模板引擎。Thymeleaf的主要目标是为您的开发工作流程带来优雅的自然模板,使HTML可以在浏览器中正确显示,也可以作为静态原型工作,从而可以在开发团队中加强协作。

​ Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果。这是由于它支持 html 原型,然后在 html 标签里增加额外的属性来达到模板+数据的展示方式。浏览器解释 html 时会忽略未定义的标签属性,所以 Thymeleaf 的模板可以静态地运行;当有数据返回到页面时,Thymeleaf 标签会动态地替换掉静态内容,使页面动态显示。

​ Thymeleaf 开箱即用的特性。它提供标准和spring标准两种方言,可以直接套用模板实现JSTL、 OGNL表达式效果,避免每天套模板、该jstl、改标签的困扰。同时开发人员也可以扩展和创建自定义的方言。

​ Thymeleaf 提供spring标准方言和一个与 SpringMVC 完美集成的可选模块,可以快速的实现表单绑定、属性编辑器、国际化等功能。

前端项目结构图:

image-20241212161622191

四、各功能的主要功能及说明

1.登陆注册功能

​ 系统分为用户登录和管理员登录,用户登录后可以编写日记和管理日记,管理员登录后可以查看系统数据和管理日记、标签、分类、用户等。

2.日记管理功能

​ 用户登录后可以编辑发布自己的日记,并且可以对自己发布的日记进行管理,包括修改日记和删除日记。

3.分类管理功能

​ 分类可以对所有的日记进行归类处理,不同的日记不同的类别,方便用户查看对应的感兴趣的内容。

4.标签管理功能

​ 用户在编写日记时,可以选择已有多个标签,也可添加自己需要的标签,标签更细化了日记的种类,方便用户查看对应的感兴趣的内容。

5.评论管理功能

​ 可以对日记进行评论,与作者互动。

6.用户管理功能

​ 管理员账号登录后,可以管理所有的普通用户,对用户进行修改和删除操作。

7.文件管理功能

​ 管理员账号可处理用户上传的一些文件。具有上传和删除操作。

五、设计结果和分析

1.游客角色

image-20241212161853291

image-20241212161857641

image-20241212161906591

image-20241212161909643

2.系统登录注册

image-20241212162627043

image-20241212162640904

3.用户角色

image-20241212162651756

image-20241212162656357

image-20241212162702311

4.管理员角色

仪表盘:展示系统所有统计信息,总日记数,分类数量,标签数量,评论数量等。

image-20241212162713785

用户管理:展示系统所有用户的公开日记。

image-20241212162726163

分类管理:新增、修改和删除类别操作。

image-20241212162735156

标签管理:对标签进行修改和删除操作,并且显示标签对应的日记数量。

image-20241212162742832

评论管理:展示系统所有日记的评论,点击前台地址可以跳转到对应的评论日记页面。

image-20241212162750798

用户管理:展示系统所有已注册的用户信息。

image-20241212162757881

文件管理:展示用户之间共享存储的文件,可以免费下载和查看。

image-20241212162806559

系统配置:可以对个人信息和密码进行修改,团队信息的内容就是在主页上显示的信息展示模块,可动态修改不同的值。

image-20241212162813263

六、学习心得

​ 通过一个学期对Java这门课的学习,让我认识到信心、恒心、毅力在学习的过程当中十分重要。在本门课一学期的学习中我们学习到了许多的理论知识,但真正让我们对这些书本知识印象深刻的还是此次大作业。在本次大作业中我们学习到了在课上只闻其声不见其貌的框架,顺带复习了以前学习的一系列数据库操作。在短短两周内和“他们”深刻交流了一下,这里感谢岳昊老师,如果没有您我们的作品将没有这么完善。

​ 这门课教会我们的不仅仅是一个框架,更是一种面对问题不挫败不气馁的态度。这是我们第一次在大作业中尝试自己立意。虽然我们现在时间和金钱还有限,但如果有机会我们想格记真的可以完善好,成为一方人心灵的港湾。作业完成过程中尽管时间紧迫时,遇到困难会抓耳挠腮,但一起看着作品成功完成,我们这个四人的小团队也感到衷心的欣慰。

​ 最后感谢我的组员们,小组作业中从不踢皮球或者推脱,大家都非常快速和完美的完成自己的工作,虽然我们的作品还有很多不足,但我们之后会继续努力继续进步的。期待下次再相遇!

附表:

团队分工明细表
序号 姓名 主要工作任务
1 富佳 搭建项目基本结构;实现用户注册与登录功能;实现日记的分类管理功能;文档主笔。
2 夏取明 设计数据库表结构;开发日记的创建与编辑功能;添加评论功能;进行系统测试;视频录制。
3 王艺凡 完善用户界面设计;文档主笔。
4 朱艳芳 完成系统需求分析;视频文稿;