基于Android的移动考勤APP的设计与实现

编程入门 行业动态 更新时间:2024-10-26 21:27:58

基于Android的移动<a href=https://www.elefans.com/category/jswz/34/1762901.html style=考勤APP的设计与实现"/>

基于Android的移动考勤APP的设计与实现

详细实现代码

后端Spring Security自定义实现JSON格式+JWT+数据库验证参考

百度地图sdk使用参考官方文档和文章

Android实现HTTPS自签名证书验证参考文章

目录

  • 系统整体介绍
  • 系统总体设计
  • 后端接口安全设计
  • 后端SSM框架类图
  • Android MVVM框架类图
  • 数据库e-r图
  • Android APP项目结构

系统整体介绍

  • 移动考勤系统组成结构分为Android手机端考勤APP、Web网页端后台管理系统和后端服务器三个部分。
  • Android APP使用Android SDK原生开发,借助第三方百度地图位置服务API实现员工位置显示、考勤签到签退和事务申请等功能。
  • web网页端基于Vue2进行页面搭建,实现个人信息查看、员工数据管理和事务审批功能。
  • 后端服务器使用Spring Boot+Mybatis Plus搭建,遵守RESTful接口规范,整合JSON Web Token+Spring Security实现基于角色的安全认证策略, 使用java 11
  • 使用Redis缓存临时数据。数据库为MySQL5.7版本

系统总体设计

系统总体架构图
系统总体功能模块设计

后端接口设计如下

后端接口安全设计

本系统为保证接口安全进行如下设计:首先要对除了登录相关接口进行JWT校验和角色权限认证后才能正常使用接口功能,只有在登录验证成功后才会生成对应JWT;其次当用户进行登录验证时指定登录请求方方为POST同时要附加验证码和登录平台信息;然后设置接口返回格式统一为JSON格式,并对各种异常设置异常处理类,确保即使发生异常前端也能收到响应;最后实现后端主动注销功能,使用Redis缓存注销JWT黑名单,完整注销功能要配合前端一起实现。
因为Spring Security默认使用的UserDetails接口只存储用户用户名和密码,进行用户名密码认证授权和鉴权。因此要进行扩展让其支持自定义数据存储,同时设置响应格式统一为JSON,并添加JWT过滤器JwtAuthenticationFilter当前端访问其他接口进行JWT校验,最后在Spring Security的设置类进行角色权限访问控制,只有拥有对应权限才能访问特定接口。

后端SSM框架类图

Android MVVM框架类图

参考书籍第一行代码

数据库e-r图


Android APP项目结构

  • logic包存放业务逻辑相关代码,ui包存放界面展示相关代码。logic包下的子包dao包存放数据访问对象,model包存放数据模型,network包存放网络配置和请求相关代码,APPDatabase初始化RoomDataBase,CrashHandler进行异常捕获和处理。Repository作为仓库层封装所有数据请求接口。util包封装MD5签名和IMEI获取操作。MyApplication获取全局上下文对象和对百度地图SDK初始化。BaseActivity方便得知当前是哪个Activity,便于调试。
  • log包解决APP开发时出现异常退出而Logcat不显示错误信息和错误堆栈的问题。当APP出现未知问题崩溃时携带错误信息跳转到日志Activity,方便寻找错误原因和调试程序。
  • res包存储布局相关静态文件,子包drawable存放本系统相关图标,layout子包存放Activity和Fragment的xml布局文件,menu包存放底部菜单子项,navigation包存放nav_graph导航图。
    Activity与Activity之间通过Intent跳转,Activity与Fragment之间通过Navigation管理返回栈。


更多推荐

基于Android的移动考勤APP的设计与实现

本文发布于:2024-02-17 07:56:03,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1693253.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:考勤   Android   APP

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!