Skip to content

Flechazo098/JNYZ-dairy-frontend

Repository files navigation

JNYZ 日记应用

一个全栈日记应用程序,使用 Spring Boot 和 Vue.js 构建,具有安全的身份验证、文件管理和丰富的用户界面。

功能特性

身份验证与安全性

  • 基于 JWT 的身份验证系统
  • 角色基础访问控制(管理员/用户)
  • 使用 BCrypt 加密密码
  • 注册时的验证码验证
  • 使用 JDBC 存储会话管理
  • CORS 配置
  • 输入验证和清理

用户管理

  • 包含验证的用户注册
  • 个人资料管理(头像、显示名)
  • 管理员用户管理界面
  • 用户状态跟踪(活跃/锁定/已删除)
  • 最后登录跟踪
  • 电子邮件验证

日记管理

  • 创建、读取、更新和删除日记条目
  • 每个条目支持多张图片附件
  • 基于日期检索日记
  • 图片预览支持
  • 内容格式化
  • 基于日期范围的过滤

文件管理

  • 安全的文件存储系统
  • 自动文件清理(保留30天)
  • 支持图片上传并进行验证
  • 文件类型限制
  • 最大文件大小限制
  • 缩略图生成

前端功能

  • 使用 Tailwind CSS 的响应式设计
  • 支持深色/浅色主题
  • 日历集成
  • 自定义背景支持
  • 图片预览
  • 表单验证
  • 加载状态处理
  • 错误处理

技术栈

后端

  • Spring Boot 3.2.3
  • Spring Security
  • Spring Data JPA
  • PostgreSQL
  • JWT 认证
  • Java 8
  • Maven

前端

  • Vue.js 3
  • Pinia 状态管理
  • Vue Router
  • Tailwind CSS
  • Heroicons
  • Axios
  • Vite

项目结构

后端组件

  • 控制器:处理 HTTP 请求
  • 服务:业务逻辑实现
  • 仓库:数据访问层
  • 实体:数据模型
  • 数据传输对象 (DTO):数据传输对象
  • 配置:应用程序配置
  • 安全:认证和授权
  • 异常:全局异常处理

前端组件

  • 视图:页面组件
  • 组件:可重用的 UI 元素
  • 服务:API 集成
  • 存储:状态管理
  • 资源:静态资源
  • 路由:导航配置

安全特性

  • CSRF 保护
  • XSS 预防
  • 密码的安全存储
  • 输入验证
  • 文件类型的验证
  • 基于角色的授权
  • 会话安全
  • 请求速率限制

开发环境设置

后端要求

  • JDK 8 或更高版本
  • Maven 3.6+
  • PostgreSQL 12+

前端要求

  • Node.js 14+
  • npm 或 yarn

配置

  • JWT 设置
  • 文件存储路径
  • 数据库连接
  • CORS 设置
  • 会话配置
  • 邮件服务器设置
  • 文件大小限制

About

The frontend of student calendar diary system

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published