广东第二师范学院校园助手系统是为广东第二师范学院专属打造的校园服务应用。它不仅提供了课表查询、成绩查询、四六级考试成绩查询、空课室查询、图书借阅查询、馆藏图书查询、教学质量评价、电费查询、黄页信息查询、校园卡充值、校园卡挂失、消费查询等综合性的教务功能,还提供了二手交易、失物招领、校园树洞、恋爱交友、表白墙、全民快递、拍好校园、话题、匿名评教等社区交流平台。广东二师助手旨在为广东第二师范学院的在校师生们提供最优质的教育教学、校园生活、社团活动、文化娱乐和教务服务等信息。四年时光,广东二师助手陪你一起走过。
广东第二师范学院校园助手系统是基于网络爬虫模拟登录技术和Spring、SpringMVC、Mybatis框架开发的校园应用,已正式投入广东第二师范学院生产环境供在校师生使用。应用采用前后端分离的架构设计,前端界面使用第三方WeUI样式库,后端利用JSON和Restful API为前端和移动端提供数据接口。目前应用支持Android、iOS、UWP、微信小程序等多个客户端,并利用OAuth2.0技术,接入微信公众号等多个平台。
为保障用户的信息和资金安全,应用从多个层面添加了安全保护措施。
应用使用了请求防重放攻击校验、对称加密算法、非对称加密算法、消息摘要、数字签名等多种安全技术保证通信的安全性、可靠性。
应用使用了阿里聚安全提供的基于对称加密算法的关键用户数据加密存储、实名认证信息脱敏处理、基于子账号和最小权限原则的数据库管理策略等技术手段保证数据的安全性、完整性。
应用使用了有状态的和基于HMAC-SHA256的签名算法的JWT作为移动端与服务端通信的授权认证身份凭证。同时,利用OAuth2.0技术,应用允许用户通过微信、易班网等第三方账号快速登录应用,并使用第三方平台提供的众多API数据接口,构建更为丰富的应用功能,提供更为优质的用户体验。
对于网络常见的跨站脚本攻击、SQL注入攻击、跨站请求伪造攻击,应用也使用了相应的技术手段进行防护,能有效抵御大部分常见的漏洞攻击。
- 一键评教
- 电费查询
- 黄页查询
- 体测查询
- 空课室查询
- 校园卡充值
- 校园卡挂失
- 课程成绩查询
- 学期课表查询
- 消费记录查询
- 考研成绩查询
- 馆藏图书查询
- 图书借阅查询
- 图书一键续借
- 校园卡信息查询
- 四六级成绩查询
- 新闻通知
- 学期校历
- 校园公众号
- 疫情实时播报
- 历史上的今天
- 话题平台
- 表白墙平台
- 恋爱交友平台
- 二手交易平台
- 校园树洞平台
- 失物招领平台
- 全民快递平台
- 拍好校园平台
- i志愿
- 学信网
- 粤康码
- 政务服务
- 疫情动态
- 通信行程码
本应用在中华人民共和国境内注册、发布和运营,目前仅面向广东第二师范学院在校师生开放注册使用。
测试环境账号:(用户名 - 密码)
- gdeiassistant - gdeiassistant
- Windows 10.0.10240
- macOS Mojave 10.14.3
- Intellij Idea 2018.3.5 Ultimate
- Visual Studio Code 1.32
- Navicat for MySQL version 12.1
- Git 2.21.0
- Gradle 5.1.1
- Tomcat 8.5.75
- JDK 1.8.0
- Mysql 5.7.32
- MongoDB 4.0.4
- Redis 5.0.3
- WeUI 1.1.1
- BootStrap 4.0.0
- Spring 4.3.14
- Mybatis 3.4.4
- JQuery 3.2.1
- JQuery WeUI 1.0.1
- JQuery Mobile 1.4.5
- AmazeUI 2.7.2
- Layer Mobile 2.0.0
- Logback 1.2.3
- Jsoup 1.10.3
- HttpClient 4.5.3
- OkHttp 3.8.1
$ git clone https://github.com/GdeiAssistant/GdeiAssistant.git
$ mysql -u用户名 -p密码 < gdeiassistant.sql
应用使用了Spring提供的Profile机制,分为开发环境和生产环境,分别使用development和production作为标记。
在开发环境中,系统将显示更具体的调试信息,并使用开发环境下的配置连接数据源和日志输出配置。
而在生产环境中,部分调试信息将被隐藏,且将使用生产环境下的配置连接数据源和日志输出配置。
若在系统中,开发者没有指定使用何种环境,则默认情况下使用开发环境的配置:
package cn.gdeiassistant.Config;
import ...
public class GdeiAssistantAppInitializer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext servletContext) {
...
//配置默认Profile环境变量
servletContext.setInitParameter("spring.profiles.default", "development");
...
}
}
开发者可以通过多种方式指定当前系统启用何种Profile环境:
- 作为DispatcherServlet的初始化参数
package cn.gdeiassistant.Config;
import ...
public class GdeiAssistantAppInitializer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext servletContext) {
...
ServletRegistration.Dynamic dispatcherServlet = servletContext.addServlet("DispatcherServlet", dispatcher);
//激活生产环境
dispatcherServlet.setInitParameter("spring.profiles.active","production");
...
}
}
- 作为web应用的上下文参数
package cn.gdeiassistant.Config;
import ...
public class GdeiAssistantAppInitializer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext servletContext) {
...
servletContext.setInitParameter("spring.profiles.active","production");
...
}
}
- 设置环境变量
System.setProperty("spring.profiles.active" , "production");
- 设置VM参数
-Dspring.profiles.active=production
- 在集成测试类上,使用@ActiveProfiles注解配置
一般情况下,开发者选择其中一种方式进行配置即可使Profile环境生效。若重复选择多种方式进行配置,可能会由于优先级导致产生预料之外的结果,具体请自行查阅相关文档。
项目中使用了大量的第三方数据接口(如极速数据、百度云、阿里云等),这些数据接口一般都要求调用者提供对应的接口身份凭证(AppID/AppSecret/AppKey等)。在项目中,接口身份凭证或其他重要的配置参数都保存在resources/config目录下对应的*.properties文件中。部分接口需要你自行前往对应的数据接口网站,申请或购买接口使用权限并获得接口身份凭证,并将配置参数填充到对应的配置文件中。若你不填写,则可能导致项目部分模块或整体不可用。
-
安全加密:阿里聚安全提供了安全加密、安全签名等组件,可以提供安全、可靠、稳定的加密功能,项目在生产环境中使用阿里聚安全提供的安全组件实现加解密功能。jaq目录下的配置文件保存了用于阿里聚安全签名校验和加解密的参数信息。由于阿里聚安全产品业务策略调整,产品于2018年8月1号已正式停止服务和运营。建议开发者自行修改StringEncryptUtils工具类以实现加解密过程。
-
JWT:jwt目录下的配置文件保存了生成和校验JSON Web Token使用的HMAC-SHA256算法的密钥,开发者可以自行生成并妥善保存。
-
Logback:Logback使用了XML配置文件,除了输出信息日志和错误日志外,Logback还会保存用户的表单请求记录和教务查询记录。开发者可以自行修改Logback的日志保存路径和策略。
-
新闻通知:由于部分学校新闻页面需要用户登录后才拥有权限访问,因此需要在news目录下的account.properties文件中配置你的校园网络账号用户名和密码。
-
对象存储:OSS对象存储是阿里云平台提供的海量、安全、低成本、高可靠的云存储服务。oss目录保存了服务端访问OSS服务和生成移动端临时令牌的配置参数。all_policy.txt、bucket_read_policy.txt和bucket_read_write_policy.txt是类JSON结构的RAM权限策略控制配置文件,分别表示允许所有动作、只读和读写。开发者可以使用阿里云平台提供的 RAM Policy Editor 生成授权策略。oss.properties保存的是服务端直接访问OSS服务的AccessKey和SecretKey身份凭证等信息,token.properties保存的是生成移动端临时令牌的RAM角色身份凭证、令牌过期时间和RAM权限策略控制配置文件路径等信息。
-
防重放攻击:项目对重要的接口采取了防重放攻击保护,用户请求时,系统将会与随机值、时间戳和令牌值进行字符串拼接或直接与签名或缓存作校验,validate目录下的token.properties保存了令牌值,该值应该与移动端发起网络请求时提交的令牌值相同,才可以校验成功。
-
IP归属地:IP归属地查询功能使用了极速数据平台的IP查询数据接口。该接口仅支持IPV4地址,因此需要设置对应的参数属性以激活使用IPV4,有多种方式来设置:
- 设置环境变量
System.setProperty("java.net.preferIPv4Stack" , "true");
System.setProperty("java.net.preferIPv4Addresses" , "true");
- 设置VM参数
-Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses=true
Copyright (c) 2016 - 2023 GdeiAssistant
-
若你喜欢本项目,欢迎Star本项目
-
要贡献代码,欢迎Fork之后再提交Pull Request
-
如果你有好的意见或建议,欢迎给我们提交Issue
如果你在使用过程中需要寻求技术支持或对应用开发及软件设计等方面有建议和意见需要向我们提出,可以通过电子邮件地址gdeiassistant@gmail.com联系我们。
感谢以下框架及系统的开发者为本应用作出的巨大贡献
-
WeUI - 微信基础样式库
-
JQuery WeUI - 为微信公众账号开发而设计的一个简洁而强大的UI库
-
AmazeUI - 中国首个开源HTML5跨屏前端框架
-
Layer Mobile - 为移动设备量身定做的弹层UI
-
Bootstrap - 简洁、直观、强悍的前端开发框架
-
JQuery - 跨浏览器的JavaScript库
-
JQuery Mobile - 用于创建移动Web应用的前端开发框架
-
Cropper - 简单且功能强大的图片剪裁jQuery插件
-
Recorder - HTML5语音录制组件
-
Swiper - 应用较广泛的移动端网页触摸内容滑动js插件
-
Spring - Java平台的开源的全栈应用程序框架和控制反转容器实现
-
Mybatis - 支持定制化SQL、存储过程以及高级映射的Java持久化框架
-
Jsoup - 用于解析、提取、操作HTML的开源Java函式库
-
HttpClient - 高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包
-
OkHttp - Android、Kotlin和Java平台的HTTP客户端组件
-
superdaxue - 超级大学查成绩查课表系统,本应用成绩查询、课表查询功能在此应用基础上进行修改和开发
-
Online-photo-uploading-and-voting-application - 最美军训照,本应用拍好校园功能在此应用基础上进行修改和开发
-
saylovewall - 广西科技大学表白墙,本应用表白墙功能在此应用基础上进行修改和开发
本项目只用作个人学习研究,如因使用本项目导致任何损失,本人概不负责。