!!!!!!!!!
会持续一直更新下去 有问必答 一键收藏关注不迷路
源码获取:https://pan.baidu.com/s/1aRpOv3f2sdtVYOogQjb8jg?pwd=jf1d 提取码: jf1d
!!!!!!!!!
项目介绍
随着学校对学生日常管理需求的增加,特别是对于班级考勤的重视,一个功能全面、界面友好的基于Android的班级考勤App系统应运而生。该系统旨在帮助老师更高效地完成点名工作,同时也方便学生查看自己的出勤情况,以及家长了解孩子的上学状态。通过本项目的实施,目标是解决传统手工点名方式中存在的效率低下、易出错等问题,满足学校、教师、学生及家长的需求。
核心功能模块:
- 用户账户管理:支持教师、学生以及家长注册登录;不同角色拥有不同的权限设置,保证信息安全。
- 班级信息维护:允许创建新的班级,并对已有班级进行修改或删除操作;可以添加或者移除成员(主要是学生)。
- 智能考勤打卡:利用手机定位服务实现快速准确的签到签退功能;支持手动调整异常记录。
- 历史记录查询:提供详细的个人及整个班级的历史出勤数据浏览服务;可根据日期范围筛选显示结果。
- 请假审批流程:学生可以通过应用程序提交请假申请,由班主任审核批准后生效;同时保留所有申请记录供日后参考。
- 通知消息推送:向指定群体发送重要提醒如上课时间变更等信息;确保每个人都能及时收到相关资讯。
- 数据统计分析:自动生成各类图表报告,比如每月/学期的总体出勤率等,帮助管理者更好地掌握情况并作出相应调整。
- 家长端接入:让家长们能够远程查看自己孩子的上学状况,增强家校之间的沟通联系。
技术栈
DK版本:JDK1.8
开发环境:开发语言:Java
框架:SpringBoot
数据库:mysql 5.7
数据库工具:Navicat11
开发软件:eclipse/myeclipse/idea
Maven包:Maven3.3.9
移动端框架:uniapp
开发软件:HBuilder X
开发模式:混合开发
运行工具:Android Studio
项目截图
核心代码
# coding:utf-8
# author:ila
import click,py_compile,os
from configparser import ConfigParser
from configs import configs
from utils.mysqlinit import Create_Mysql
from api import create_app
from api.exts import db
from api.models.user_model import *
from api.models.config_model import *
from api.models.brush_model import *
@click.group()
def sub():pass@click.command()
@click.option("-v", default=0.1, type=float)
def verr(v):# VERSION = 0.1click.echo("py sub system version:{}".format(v))@click.command()
def run():app = create_app(configs)app.debug = configs['defaultConfig'].DEBUGapp.run(host=configs['defaultConfig'].HOST,port=configs['defaultConfig'].PORT,threaded=configs['defaultConfig'].threaded,processes=configs['defaultConfig'].processes)@click.command()
def create_all():app = create_app(configs)with app.app_context():print("creat_all")db.create_all()@click.command()
@click.option("--ini", type=str)
def initsql(ini):cp = ConfigParser()cp.read(ini)sqltype = cp.get("sql", "type")database= cp.get("sql", "db")if sqltype == 'mysql':cm = Create_Mysql(ini)cm.create_db("CREATE DATABASE IF NOT EXISTS `{}` /*!40100 DEFAULT CHARACTER SET utf8 */ ;".format(database))with open("./db/mysql.sql", encoding="utf8") as f:createsql = f.read()createsql = "DROP TABLE" + createsql.split('DROP TABLE', 1)[-1]cm.create_tables(createsql.split(';')[:-1])cm.conn_close()elif sqltype == 'mssql':cm = Create_Mysql(ini)cm.create_db("CREATE DATABASE IF NOT EXISTS `{}` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;".format(database))with open("./db/mssql.sql", encoding="utf8") as f:createsql = f.read()createsql = "DROP TABLE" + createsql.split('DROP TABLE', 1)[-1]cm.create_tables(createsql.split(';')[:-1])cm.conn_close()else:print('请修改当前面目录下的config.ini文件')@click.command()
@click.option("--py_path", type=str)
def compile(py_path):print("py_path====>",py_path)py_compile.compile(py_path)@click.command()
def replace_admin():filePath=os.path.join(os.getcwd(),"api/templates/front/index.html")if os.path.isfile(filePath):print(filePath)with open(filePath,"r",encoding="utf-8") as f:datas=f.read()datas=datas.replace('baseurl+"admin/dist/index.html#"','"http://localhost:8080/admin"')datas=datas.replace('baseurl+"admin/dist/index.html#/login"','"http://localhost:8080/admin"')with open(filePath,"w",encoding="utf-8") as f:f.write(datas)sub.add_command(verr)
sub.add_command(run,"run")
sub.add_command(create_all,"create_all")
sub.add_command(initsql,"initsql")
sub.add_command(replace_admin,"replace_admin")
if __name__ == "__main__":sub()
获取源码
!!!!!!!!!
源码获取:https://pan.baidu.com/s/1aRpOv3f2sdtVYOogQjb8jg?pwd=jf1d 提取码: jf1d
!!!!!!!!!