EAR_v3 《浮声三》 智能化图书管理系统

简介: 浮声三 EAR_v3,基于 Actix_Web 框架的智能化图书管理系统,版本 2.1.2,由 Rusty_Borders 的在线控制系统演变而来。该项目采用 Rust 语言编写,依赖库有 Actix_Web、Tokio、OpenSSL 等,提供用户注册登录、借阅归还图书、单会话、集中身份检查等服务。是此版本使用 MySQL 作为数据库,Redis 作为高速缓存,并且实现了 SSL 加密传输,确保了安全性和高效性。项目遵循 GPL v2.0 协议。

EAR_v3 《浮声三》

搭建于 Actix_Web 框架下的智能化图书管理系统

本项目的前身是 《Rusty_Borders 危墙》 的 在线控制系统 部分,经过大量开发工作和重构,现作为常规项目发布。
自 2024 年 10 月项目确立,作者进行了大量的开发和修改,后经广泛测试,现已投入部署。

示例网站:欢迎

本项目最初采用 Iron_Web 框架开发,但由于该库长时间停止维护,导致其对其他库的兼容性大大降低,并且性能和技术成熟度尚有不足。
是此版本采用 Actix_Web 作为网站主框架,带有 redis-session 组件的 Actix_session 库作为网站 Token 交互库。

本项目遵循GPL v2.0协议。

本项目在设计之初被规划为一个智能化图书管理系统,基于 Rust 语言,依赖库包括 Actix_Web、Tokio、OpenSSL 等。
本项目不是云原生。
本项目包括前端部分、后端部分和数据库部分。
本项目实现的交互性功能:(详见下文)

  • 用户注册、登录、注销、修改个人信息等。
  • 借阅、归还图书等。
  • 单会话登录。
  • 验证码机制。
  • 邮件机制。
  • 集中会话检查。

本项目无成熟的部署程序,若使用硬编码则会出现兼容性问题,而配置文件会使项目安全性降低。

有任何意见或建议请联系作者:kjx52@outlook.com

*注:第 0.10.1 版本的 Actix_session 库所依赖的 Redis 部分有兼容性问题,请自行更改软件树


项目信息

版本:2.1.2
作者:Jessarin000 ,本名 Kjx52 ,现名 Skiner, 独立开发者
发布日期:2025/2/25
项目地址:EAR_v3

本项目开发环境为 Windows 11、Windows Server 2022 Datacenter。
本项目开发使用 1.84.0 版本的 Rust 编译器。

截至布前,本项目共经过 2 次公测, 5 次大型测试,262 次小型测试。通过率为 92.3%。
发布前,本项目已修复了所有已知 Bug。

本项目属于常规项目。
作者尽力确保其安全性,但因水平有限,若是百密之中有所纰漏,还望各位告知本人。
作者联系方式: kjx52@outlook.com。

*本项目会使用到一些隐私数据,用户应根据本地环境进行修改。

ear_logo.png
浮声三 标志性徽标


更新日志:项目内容与亮点

经过一个月紧锣密鼓的开发后,是此版本在健壮性、性能、安全性、兼容性和灵活度上都有了长足的进展。
本项目的亮点包括:

  • 奉行“左移安全”原则 由于作者拥有安全开发的背景,故在该网站设计之初就将其安全性考虑了进去。
  • Actix_Web框架和Tokio的强大性能 在Rust开发环境下,各类库都能拥有很高的性能,而前文所提道的两位无疑是它们当中的强者,拥有其他框架无可比拟的成熟度和广度。

相较于 EAR_v3_1.4.8 ,是此版本进行的重大更新有:

  • 引入Redis: 在服务器运行过程中,服务器状态会无可避免地逐渐增大,若是将其依旧 push 到运行内存中,则会严重影响网站性能,而面对不断更新迭代的用户数据,MySQL 又会显得力不从心。是此版本使用高
    速缓存的 Redis 服务来解决这个问题,并且整个运行体系也围绕着这个新的数据中心进行了一系列调整。

  • 实现了单会话机制: 是此版本使用 MySQL 作为长期存储的数据库,而 Redis 则用于缓存高交互的零碎数据。二级存储方案则应运而生,该计划不仅可以避免数据冲突、提高网站整体安全性、避免性能损耗,也同时
    实现了用户数据的跨设备迁移。

  • 更新了scope: 是此版本添加了用户注册和信息修改两大逻辑类,从 raw 数据过滤、到格式化 Redis 吞吐,再到邮件发送,共计 12 个模块。更新了模块交互机制,降低耦合度,改善兼容性。更新了路由分组,添加了几个中间件,可以更好地解析日志和用户请求。

  • 完善了身份验证机制: 在早期版本中,未持有有效 token 的用户访问 /access 路径下的页面均会被重定向至 login 页面,这显然不合理,是此版本使用 wrap 中间件的集中身份检查策略来应对这一点。在此版本中,中间件会检查用户请求 URL,若无权访问,则响应 login 界面,登陆后则直接导向原请求 URL 处。

  • 取消了GET参数: 对于大多数网站来说,GET参数是必不可少的,这也造成了大量的安全漏洞,是此版本使用嵌入式网站路径进行改进。

  • 随机路径填充邮件地址: 出于安全性考量,是此版本使用随机生成的 32 位字符串作为邮件链接路径,Actix_Web 的路由管理机制完全有能力将该路由进行妥善处理。

  • 删除了WebSocket模块: 该模块几乎可以肯定会对网站安全性造成威胁,并且由于作者功底太薄,无法对其进行优化,故最终废弃。该模块原先被用于在用户信息更新时向前端推送变更数据。

  • 实现了SSL加密传输: 是此版本使用 HTTPS 进行数据传输,增加安全性。

  • UI界面美化: 修复了许多 UI 错误,重制和美化了一些界面,包括独具特色的 Err 和 404 界面。

  • 函数优化、Bug修复: 拆分和重组了众多函数,修复了大量 Bug ,更新了软件树。

下一版本(绝对不可能有)作者或许将着手于云原生。


一些截图

main.png
浮声主界面

regist.png
浮声注册界面

reg_su.png
邮件已发送

email.png
邮件界面

browse.png
浮声浏览界面

detail.png
浮声详细信息界面

user2.png
浮声用户个人信息界面

404.png
404 界面



EAR_v3_back.png
浮声三配套启动器

detail_back.png
详细信息页面后端显示

404_back.png
浮声三面对扫描器


本项目遵循GPL v2.0协议。

本项目允许使用者修改、移植并再发布源码,但“当你发布它的时候,请确保你的项目使用者享有你曾经拥有的所有权力”。
让我们看到你的创意:D。

本项目或将推出 Linux 版本。


后记

这次的项目花了将近一个季度的时间才完成,寒假也没了:(
这也是作者第一次尝试全栈开发。
虽然很简陋,但下一个项目将会好很多。
并且至少我承诺的功能都实现了。

有任何问题、意见或建议请随时联系作者kjx52@outlook.com。
开学快乐;)





Jessarin000
2025-02-27 作

目录
相关文章
|
10月前
|
机器学习/深度学习 存储 算法
印刷字体识别系统
一个基于Python的印刷字体识别系统,遵循 GNU_GPL_v3 许可,具备字体倾斜校正、行与字符分割及字符识别功能。采用HOG算法训练SVM模型,使用Chars74K数据集。系统包含简单UI,支持动态加载和结果展示。核心算法包括自适应扩展+连通域辅助的行分割,以及垂直投影+连通域+极小值法细分粘连字符的字符分割。项目文件结构清晰,涵盖图像处理、模型训练与加载等功能模块。
318 6
|
传感器 存储 边缘计算
3000字11张图硬核科普:什么是边缘计算?与云计算有什么联系和区别?
边缘计算是 现代IT 网络架构的一种创新的、革命性的方法,计算处理去中心化并在靠近数据源的网络“边缘”执行它,数据不再发送到云或任何单个数据处理中心,而是被发送到靠近传感器或生成此数据的设备数据源,极大的提高了数据的处理速度,节省了大量的带宽,还提高了数据的安全性。
1966 0
3000字11张图硬核科普:什么是边缘计算?与云计算有什么联系和区别?
|
前端开发 数据库 数据安全/隐私保护
【项目实战】登录与注册业务的实现(前端+后端+数据库)
【项目实战】登录与注册业务的实现(前端+后端+数据库)
3237 0
【项目实战】登录与注册业务的实现(前端+后端+数据库)
|
11月前
|
数据可视化 数据处理 数据库
《重塑认知:Django MVT架构的多维剖析与实践》
MVT(Model-View-Template)是Django框架的核心架构模式,将应用分为模型、视图和模板三部分。模型负责数据处理与验证,视图承载业务逻辑并连接用户请求与数据,模板则专注于数据展示。这种清晰的分工降低了模块耦合度,提高了代码复用性和可维护性。MVT架构如同一场精密协作的演出,从URL分发到数据处理,再到页面渲染,每一步都环环相扣,为开发者带来高效、灵活的Web应用开发体验。
233 0
|
8月前
|
运维 监控 NoSQL
分布式不是“分布痛”吗?说说那些年我踩过的运维坑和总结的血泪经验
分布式不是“分布痛”吗?说说那些年我踩过的运维坑和总结的血泪经验
244 0
|
7月前
|
人工智能 前端开发 测试技术
AI coding
AI正深刻改变编程模式,从需求梳理到上线全流程均可借助AI高效完成。作者已用AI工具独立开发并发布多款应用,实践涵盖方案选型、编码、测试与部署五步法,展现未来“人人皆可开发”的趋势。
823 7
|
10月前
|
人工智能 自然语言处理 监控
|
安全 算法 API
OpenSSL支持哪些加密算法?
【10月更文挑战第4天】OpenSSL支持哪些加密算法?
1213 5
|
8月前
|
运维 监控 安全
计算机网络及其安全组件纲要
本文主要介绍了 “计算机网络及常见组件” 的基本概念,涵盖网卡、IP、MAC、OSI模型、路由器、交换机、防火墙、WAF、IDS、IPS、域名、HTTP、HTTPS、网络拓扑等内容。
393 0
|
搜索推荐 算法 前端开发
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
613 4
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
下一篇
开通oss服务