一个全栈SpringBoot项目-Book Social Network

一个全栈SpringBoot项目-Book Social Network

BSN是一个会员之间交换图书的社交网络平台。图书社交网络是一个全栈应用程序,使用户能够管理他们的图书收藏并与图书爱好者社区互动。它提供的功能包括用户注册、安全电子邮件验证、图书管理(包括创建、更新、共享和归档)、图书借阅(检查可用性)、图书归还功能以及图书归还批准。该应用程序使用 JWT 令牌确保安全性,并遵循 REST API 设计的最佳实践。后端是使用 Spring Boot 3 和 Spring Security 6 构建的,而前端是使用 Angular 和 Bootstrap 进行样式开发的。
作者是ali-bouali

功能

  • 用户注册:用户可以注册一个新帐户。
  • 电子邮件验证:使用安全电子邮件验证码激活帐户。
  • 用户身份验证:现有用户可以安全地登录其帐户。
  • 图书管理:用户可以创建、更新、共享和归档他们的图书。
  • 图书借阅:实施必要的检查以确定图书是否可以借阅。
  • 还书:用户可以归还借阅的图书。
  • 还书批准:批准还书的功能。

视频地址

油管视频地址为:Book Social Network (Full web application | Spring boot | Angular | Docker | Keycloack)

源代码

Github项目源代码地址为:https://github.com/ali-bouali/book-social-network

类图

类图

Spring security图

Spring security diagram

后端流程

BSN Backend Api pipeline

前端流程

BSN Frontend pipeline

使用的技术

1、后端(book-network)

  • Spring Boot 3
  • Spring Security 6
  • JWT Token Authentication
  • Spring Data JPA
  • JSR-303 and Spring Validation
  • OpenAPI and Swagger UI Documentation
  • Docker
  • GitHub Actions
  • Keycloak

2、前端 (book-network-ui)

  • Angular
  • Component-Based Architecture
  • Lazy Loading
  • Authentication Guard
  • OpenAPI Generator for Angular
  • Bootstrap

学习目标

通过完成这个项目,学生将学习:

  • 根据业务需求设计类图
  • 实施单一回购方法
  • 使用 JWT 令牌和 Spring Security 保护应用程序
  • 通过电子邮件注册用户并验证帐户
  • 通过 Spring Data JPA 使用继承
  • 实现服务层并处理应用程序异常
  • 使用 JSR-303 和 Spring Validation 进行对象验证
  • 处理自定义异常
  • 实施分页和 REST API 最佳实践
  • 使用 Spring Profiles 进行特定于环境的配置
  • 使用 OpenAPI 和 Swagger UI 记录 API
  • 落实业务需求并处理业务异常
  • Docker 化基础设施
  • CI/CD 管道和部署

入门

要开始使用 Book Social Network 项目,请按照相应目录中的设置说明进行操作:

  • 后台设置说明
  • 前端设置说明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/690775.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

编程代码的舞者--Python循环语句

循环语句是编程中不可或缺的要素之一,它们能够让程序反复执行特定的任务,提高代码的重复利用性和效率。在本篇博客中,我们将深入探讨Python中常用的循环语句,包括for循环和while循环,以及控制循环流程的关键字break和c…

[蓝桥杯 2021 国 ABC] 123(java)——前缀和,思维

目录 题目 解析 代码 这么久了,我终于能不看别人代码完整写出来了,呜呜呜。虽然过程也是很曲折。 题目 解析 这个题,找其中数列的规律,1,1,2,1,2,3,1,2,3,4,...,因此我们把拆分成行列,如下…

Android Studio在android Emulator中运行的项目黑屏

前言: 最近在做一个Android相关的小项目,因为之前这方面的项目做的比较的少。今天在使用虚拟机调试的时候经常出现一些莫名其妙的问题,经过自己多次的尝试和搜索终于解决了这些问题。 问题: 每次run(运行&#xff09…

【Unity Shader入门精要 第6章】基础光照(一)

1. 什么是光照模型 光照原理 在真实世界中,我们能够看到物体,是由于眼睛接收到了来自观察目标的光。这里面包括两种情况:一部分是观察目标本身发出的光(自发光)直接进入我们的眼睛,另一部分是其他物体&am…

线程知识点

一、线程 1.定义 线程:是一个进程并发执行多种任务的机制。 串行:多个任务有序执行,一个任务执行完毕后,再去执行下一个任务 并发:多个任务在单个CPU上运行,同一个时间片上只能运行一个任务,c…

BIERv6测试解析— 如何使用仪表进行转发性能测试

什么是BIERv6 BIERv6(Bit Index Explicit Replication IPv6 encapsulation)是一种新型组播方案。 BIERv6使用比特串封装目的节点集合,无需建立组播分发树或保存流状态,简化了网络节点操作。它与SRv6无缝融合,高效承载…

Linux(Ubuntu24.04) 安装 MinIO

本文所使用的 Ubuntu 系统版本是 Ubuntu 24.04 ! # 1、下载 MinIO wget https://dl.min.io/server/minio/release/linux-amd64/minio# 2、添加可执行权限 chmod x minio# 3、导出环境变量,用于设置账号密码,我设置的账号和密码都是 minioadmin export MI…

霍金《时间简史 A Brief History of Time》书后索引(E--H)

A–D部分见:霍金《时间简史 A Brief History of Time》书后索引(A–D) 图源:Wikipedia INDEX E Earth: circumference, motion, shape Eclipses Eddington, Arthur Einstein, Albert: biography, see also Relativity; Special…

主机和ubuntu连接

在这里插入图片描述 提示:文章 文章目录 前言一、背景二、 2.1 2.2 总结 前言 前期疑问: 本文目标: 一、背景 最近在hw使用Clion连接服务器,就想把自己的电脑配置好,翻出来正点原子的教程,【正点原子】…

动手学深度学习16 Pytorch神经网络基础

动手学深度学习16 Pytorch神经网络基础 1. 模型构造2. 参数管理1. state_dict()2. normal_() zeros_()3. xavier初始化共享参数的好处 3. 自定义层4. 读写文件net.eval() 评估模式 QA 1. 模型构造 定义隐藏层–模型结构定义前向函数–模型结构的调用 import torch from torch…

正点原子FreeRTOS学习笔记——列表与列表项

目录 一、什么是列表和列表项 1、概念 2、FreeRTOS代码 (1)列表 (2)列表项 (3)迷你列表项 二、列表与列表项初始化 1、列表初始化 2、列表项初始化 三、列表插入与删除列表项 1、原理解释 2、…

HDFS- DataNode磁盘扩缩容

HDFS- DataNode磁盘扩缩容 背景: 缩减/增加节点磁盘 方案介绍: 采用hdfs dfsadmin -reconfig 动态刷新配置实现,不停服扩缩容。 注意事项: 请在进行缩容之前,务必了解实际的数据量,并确保磁盘有足够的空间来容纳这些数据。还需要考虑未来的使用需求,要预留一定数量的空间…