标签: 头像

  • Typecho博客主题Joe素颜执念修改版

    Typecho博客主题Joe素颜执念修改版

    Typecho博客主题Joe素颜执念修改版

    Joe-master_20230326.zip – 蓝奏云 (lanzouf.com)

    修改内容如下:
    1.主题新增打赏功能,开启后文章底部展示打赏按钮
    2.主题新增弹幕功能,开启后界面展示弹幕
    3.主题新增在线人数统计,开启后底部展示在线人数
    4.主题新增互动读者侧边栏,开启后侧边栏展示活跃用户
    5.主题新增文章字数和阅读时长统计,开启后文章底部展示文章字数和阅读时长
    6.主题新增转载来源,文章内容输入既定内容在版权处展示转载地址
    7.主题新增手机端登录注册功能,开启后手机侧边栏可以登录注册
    8.主题新增全站置灰功能,开启后网站界面全部置灰
    9.主题新增QQ打开跳转至浏览器功能,开启后QQ打开网址可跳转到浏览器
    10.主题新增纯数字评论直接通过审核,开启后纯数字的评论可以直接审批通过
    11.主题编辑器新增订阅地址,支持插入订阅地址到文章任意位置,方便用户订阅
    12.主题新增CNZZ统计,选择不同的CNZZ样式,底部展示对应的CNZZ统计信息
    13.主题新增海报功能,配合插件,开启后在文章底部显示海报按钮
    14.主题后台设置新增订阅设置,便于站长放开订阅功能给读者
    15.主题编辑器新增字体颜色功能,可以插入自己喜欢的字体颜色,由初版的输入颜色改为可以选择颜色,方便用户
    16.主题新增手机端侧边栏今日文章发布数量展示,开启后侧边栏展示文章数量
    17.主题新增评论楼层展示,开启后评论右侧展示楼层
    18.主题新增评论等级展示,开启后展示评论者的等级信息
    19.修改文章底部版权中的 “执念博客”,采用自动获取文章作者,使用本主题用户不在需要自己修改代码
    20.头像新增呼吸灯闪烁
    21.主题设置新增采集设置
    22.修复版权链接是本站的问题
    23.底部新增百度收录条数展示
    24.新增文章底部版权声明,开启后文章地址展示版权说明
    25.评论区新增操作按钮,可以在前台直接操作评论进行删除和移至垃圾操作
    26.修复分页功能无法使用的缺陷,主题设置中可以切换分页样式
    27.新增友链界面样式选择,可以选择不同的友链样式
    28.新增友链界面随机排序,使友链每次请求展示的顺序不一致
    29.调整百度自动推送,不管是否收录都会推送
    30.新增友链在线申请功能,访问者可以直接在线申请友链,然后邮件通知管理员审批
    31.新增评论图片功能,开启后用户可以直接在评论区评论图片
    32.新增编辑器上传图床按钮,可将图片直接上传至图床,然后返回链接到编辑器中
    33.新增友链跳转页功能,打开友链先跳转到跳转页,3秒后自动打开友链,可自行配置调整页地址
    34.新增显示回复可见,开关打开后所有文章的隐藏内容不在需要回复,可直接展示
    35.修复主题设置中的备份无法使用的问题;
    36.主题新增自动更新功能,可一键更新至最新版
    37.新增手机端底部菜单设置,可自行设置菜单的个数和跳转地址;
    38.首页广告支持多个,优化显示样式,实现图片自适应;
    39.修复评论和作者头像无法显示的问题;
    40.首页广告支持输入广告到期日,便于站长记忆;
    41.新增首页广告到期自动下架功能,无需站长在后台删除
    42.头像呼吸灯新增开关,可开可关
    43.评论新增滑动验证码功能,可开可关
    44.首页广告支持平铺和轮播样式,可自行选择
    45.后台新增恋爱计时设置,添加后侧边栏显示恋爱计时
    46.新增最新文章突出显示
    47.修复开启验证码之后无法评论画图的问题;
    48.新增文章目录树功能,开启后文章左侧显示目录树;
    49.修复打赏按钮中图片无法显示的问题;
    50.修复百度收录无法显示的问题;
    51.新增后台资源搜索功能,方便各位站长搜集各类资源;
    52.支持编辑器图床多选图片并上传图床功能;
    53.修复升级typecho1.2之后报错的问题;
    54.新增文章顶部轮播广告;
    55.新增文章底部轮播广告;

    56.Jsdelivr远程文件本地化——初版;
    57.Jsdelivr远程文件本地化——终版;
    58.新增显示评论者归属地功能;
    59.新增网站统计,51la统计;

    未完待续……接历史版本继续更新……..

    60.修复php升级之后,文章目录树无法显示的问题;
    61.修复文章里广告无法轮播的问题;
    62.新增底部美化,显示好久不见图标;
    63.新增LOGO扫光特效;
    64.新增首页大图功能,可以指定图片,填写url即可;
    65.新增匿名评论功能,后台开启即可;
    66.新增顶部进度条功能;
    67.新增首页和文章展示顶部彩虹条;
    68.新增访问问候弹窗;
    69.新增评论打字框特效;
    70.新增底部鱼群跳跃;
    71.新增文章底部自定义信息;
    72.新增文章列表打开方式;
    73.新增鼠标点击特效,每次点击可以显示对应的文字或者图标;
    74.启用静态文件共享功能,使用该主题的用户可以贡献自己的带宽,用爱发电;
    75.新增付费阅读功能;
    76.付费阅读功能支持对接易支付;
    77.付费阅读功能支持对接码支付;
    78.评论框新增随机一言;
    79.完善付费阅读功能;
    80.修复付费阅读登录即可查看付费内容的问题;
    81.新增界面加载动画;
    82.新增首页文章双栏设计;
    83.新增可隐藏侧边栏功能;

    未完待续……
  • 新400多款微信小游戏源码 全部手机平板自适应+HTML5

    新400多款微信小游戏源码 全部手机平板自适应+HTML5

    本程序搭建教程:

    首先请先学会用dreamweaver工具批量替换源代码

    1.利用上述教程批量替换源代码中的”bbs.52jscn.com”为您的当前小游戏网站域名,主要不要加http://

    2.利用上述教程批量替换源代码中的”锦尚中国”为您的当前小游戏网站名称

    3.对整个目录查找“http://mp.weixin.qq.com/s?__biz= … 54318998de29e32f#rd”,然后全部替换成你自己的关注链接

    4.对整个目录查找“viying01”,然后替换成你自己的微信号

    5.将indeximg里面weixin.jpg图片换成您自己的微信头像。

    4e15ee4a4fafdd43a410b5409b263a80.jpg

  • TomatoIDC开源虚拟主机销售系统源码具备易于扩展的插件系统,模版系统扩展虚拟主机销售业务

    TomatoIDC开源虚拟主机销售系统源码具备易于扩展的插件系统,模版系统扩展虚拟主机销售业务

    TomatoIDC开源虚拟主机销售系统源码具备易于扩展的插件系统,模版系统扩展虚拟主机销售业务TomatoIDC开源虚拟主机销售系统源码具备易于扩展的插件系统,模版系统扩展虚拟主机销售业务

    TomatoIDC是一款以GPL3.0协议开源虚拟主机销售系统,具备易于扩展的插件系统,模版系统,使用强大的Laravel框架进行驱动,能帮助你轻松的扩展虚拟主机销售业务。易于使用,界面清新可视化管理界面可扩展,支持(支付,服务器,功能)插件,支持多种模版功能强大,支持卡密充值,支持多种支付方式,支持接入微信公众号(账户绑定,查询余额)人性化,Gravatar头像,微信公众号提醒,邮件提醒。

  • 考准考证制作生成小程序源码下载

    考准考证制作生成小程序源码下载

    相信大家看标题也就知道这是一个什么东西啦! 你们猜的没错,这是一个准考证制作娱乐小程序 用来恶搞等等娱乐 小程序自带背景音乐,非常适合毕业季 另外拥有自定义高考年份,头像,高考省份等等 另外也支持流量主,具体小编也就不多说了

    考准考证制作生成小程序源码下载考准考证制作生成小程序源码下载

    考准考证制作生成小程序源码下载

  • 2023兔年姓氏头像制作生成微信小程序源码下载不定时自动更新模板

    2023兔年姓氏头像制作生成微信小程序源码下载不定时自动更新模板

    内涵超多丰富的与2023兔年相关的模板

    拥有多种分类,另外不定时还会自动更新各种模板

    这样让小程序内的模板不会一直都是旧的无新的

    所以会更容易留存用户

    另外也有多个流量主功能

    制作支持拖拽调整位置,自定义颜色,阴影等等

    好了具体企业猫就不多说了,大家看演示图吧!

  • Oneclrle社交类圈子typecho主题

    Oneclrle社交类圈子typecho主题

    内附安装教程

    支持多用户,前台发文[默认markdown],发视频,发链接支持用户个性化字段:性别、签名、标签、头像、背景等支持用户相互关注和关注不同的圈子,只会显示用户关注的圈子里的内容前台图片上传与 免费图床, 解锁你的云空间支持用户定位 与 查看附近位置支持查看所有圈子,支持管理员方便的创建圈子支持无限滚动 和 分页导航两种导航方式支持转发评论博文支持前台博文显示评论支持博文置顶,支持友链添加

    Oneclrle社交类圈子typecho主题

     

  • WordPress社区论坛类主题:LightSNS1.5.2免授权破解版

    WordPress社区论坛类主题:LightSNS1.5.2免授权破解版

    LightSNS,是一款由国人开发的WP主题,主题主打社交、论坛,支持用户系统,支持多方支付接入,包含多个板块论坛、问答、VIP、充值、付费可见等一系列强大的系统。资源来自网络,有没有后门不知道,自己玩可以,如果用来做站,建议买正版。主题介绍强大SNS轻社交/论坛wordpress主题LightSNS 是由国人一手打造的轻社交SNS主题,自主开发框架,主题集成了微博/贴吧等模块,无需额外插件,细节也做的非常强大 目前你看到的这款主题的功能绝对超出你的想象,你也可以不把他当作一个主题。因为LightSNS已经超出了主题的定义。LightSNS 主打轻社交,用户互动,完全打破个人网站的为了产生内容而产生内容的僵局。让网站更具人气。
    主题特色:
    主题基本集成功能:响应式设计,完美自适应移动设备端、兼容主流浏览器、拥有强大的后台功能、集成强大SEO优化功能、导航栏支持二级菜单;
    集成会员中心模块:支持用户自主上传头像、用户自主上传封面、拥有大V认证、VIP会员系统、私信系统、充值系统、金币系统、用户等级系统、支持签到功能、用户关注功能、被关注/赞/赏等提醒功能;
    集成SNS社交功能:支持发表五种类型动态(付费、密码、私密、匿名)以及普通动态(说说,音乐,图片,视频)、支持用户转发动态、动态@他人功能、动态点赞功能、动态留言等功能;
    集成BBS论坛功能:支持无限创建论坛(板块)、支持子版块、支持后台设置版主(管理)、支持帖子管理功能(置顶,删除,加精)、支持论坛自定义设置(封面图、头像、付费功能,验证码,公告,论坛介绍等)、支持贴内@他人等功能。

  • 姓氏头像制作小工具超多制作模板的微信小程序源码

    这是一款姓氏头像制作小工具

    内含丰富多样的模板提供制作

    以前的基本是固定位置生成

    这款制作支持拖拽调整位置,自定义颜色,阴影等等

  • 2023兔年头像框制作生成微信小程序源码 多模板

    2023兔年头像框制作生成微信小程序源码 多模板

    2023了,到了兔年那么也该换新的头像框拉

    今天给大家带来兔年的头像框制作小程序

    支持一键获取头像支持用户上传头像

    丰富的模板,不只于兔年头像框还有其它的

    早点给大家发出来也好让大家早点抓住这波流量!

    2023兔年头像框制作生成微信小程序源码 多模板

  • 毕业设计源码:学生综合素质评价WEB系统

    一、介绍
    本科毕业设计,可以帮助高校更好的开展学生综合素质评价工作。
    系统特色功能
    • 预先配置加分规则,根据加分规则提交学分申请、审核学分申请,非常丝滑~
    • 可视化呈现学生的综合素质成长情况(尚处于开发阶段),形成一份”第二课堂成绩单“。
    • 根据学生的各种赛事经历形成一份简历,后续可能考虑开发一个简单的简历制作模块
    • 自动计分并基于”学分法“给出排名。后续可能会增加质性评价模块,实现质性评价和量化评价相结合。
    • 自由配置综合素质评价指标,满足不同专业的学生培养要求。
    • 各项功能均比较完善,包括学生申请与审核、异议提交和审核、自动化加分与排名、评价结果和配置文件导出、学生名单和成绩文件导入、学生账号管理等。



    系统设计理念说明

    • 系统的核心设计理念理解起来可能会比较生涩,专门研究过学生综合素质评价这一块的应该会比较清楚。综合素质评价说简单点可以看作是期末综评、评优评奖的时候需要做的事情。
    • 一般来说,学校会根据学生的比赛获奖、社会实践等给学生加分,排名靠前的可以获得奖学金、荣誉称号甚至保研资格。
    • 这些比赛、社会实践加分以往基本都是通过学生复印纸质材料,然后提交excel表格,然后由学委汇总这一套流程实现的。一些学生已经有了信息化的系统,但是迄今为止的本科和现在研究生院校都没怎么用。原因可能是学习这个系统的成本比较高吧;也可能是已有的系统不够灵活,不能满足不同学院、不同专业的个性化要求。
    • 这个系统会将比赛单独出来,因为根据我个人的经历,比赛在高校加分中占比算是比较大的。除了比赛之外的加分项,称之为”其他“,比如班干部加分、团日活动加分等。
    • 由于一些高校会给不同的比赛不同的加分等级,同一个比赛获奖的不同级别加分肯定也是不同的,因此可以通过配置文件来提前配置好。
    • 比如我写个json文件,国家级一等奖加多少分,国家级二等奖加多少分,先配置好,学生提交学分申请的时候只需要选择对应的等级就可以了;同时,老师审核的时候,只需要关注学生选择的等级是否与学生提交的证明材料(电子版)能够对应上就行了,不需要关注这个过程中到底加了多少分(前提是对应等级和加分分值对应且无误)。

     

    详细安装、配置教程
    https://www.bilibili.com/video/BV1TD4y1Y7CV?share_source=copy_web


    二、核心功能说明

    系统一共有三个使用角色,相当于有三套系统,在这里只介绍核心的一些功能及实现。

    导入学生名单或者成绩名单

    • 这个功能实现的是教师上传学生名单或者学生成绩的时候,后端能够自动读取文件并将数据处理后存入数据库。这里需要提前确定好学生名单和成绩文件的格式。核心代码如下:
     复制代码 隐藏代码
    public class ReadStudentXlsFiles {
        private static String basePath = "G:\\Projects\\Materials\\cqes4cs\\files\\students\\";
        public static List<HashMap<String, Object>> readStudentXlsx(String fileFinalName) throws FileNotFoundException {
            // 将文件存入本地,便于读取
            String filePath = basePath + fileFinalName;
            File file = new File(filePath);
            FileInputStream fs = new FileInputStream(file);
            List<HashMap<String, Object>> lst = new ArrayList<>();
            try {
                String fileName = file.getName();
                String[] fileParts = fileName.split("\\.");
                Workbook sheets;
                if (fileParts[fileParts.length - 1].equals("xls")) {
                    sheets = new HSSFWorkbook(fs);
                } else {
                    sheets = new XSSFWorkbook(fs);
                }
                Sheet sheet = sheets.getSheetAt(0);
                int rowCount = sheet.getLastRowNum();
                int colNum = sheet.getRow(0).getPhysicalNumberOfCells();
                // 遍历行
                for (int i=1; i<=rowCount; i++) {
                    HashMap<String, Object> map = new HashMap<>();
                    Row row = sheet.getRow(i);
                    // 遍历列
                    for(int j = 0; j < colNum; j++){
                        if(row.getCell(j) != null){
                            row.getCell(j).setCellType(CellType.STRING);
                            String cellValue = row.getCell(j).getStringCellValue();
                            switch (j) {
                                case 0:
                                    map.put("userid", cellValue);
                                    break;
                                case 1:
                                    map.put("name", cellValue);
                                    break;
                                case 2:
                                    map.put("major_code", cellValue);
                                    break;
                                case 3:
                                    map.put("class", cellValue);
                                    break;
                                case 4:
                                    map.put("year", cellValue);
                                    break;
                                default: break;
                            }
                        }
                    }
                    lst.add(map);
                }
                fs.close();
                return lst;
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
    }

     

    处理加分规则配置

    • 这个功能实现的是教师修改加分规则的时候,后端进行请求处理。与简单的请求处理不同,这个接口会在处理数据之前把数据存储到一个临时表中。这是因为加分规则配置比较复杂(但是配置完成之后用起来非常丝滑),需要确保数据存取过程中不会出。
    [Java] 纯文本查看 复制代码
    // notation
    
    @RequestMapping("/modifyContestConfig")
    
    @Transactional
    
    @RequiresRoles("manager")
    
    public ResponseEntity modifyContestConfig(@RequestParam Map<String, String> map) {
    
                    List<HashMap<String, Object>> list = new ArrayList<>();
    
                    Map<String, String> nameMap = new HashMap<>();
    
                    Map<String, String> indexMap = new HashMap<>();
    
                    for (Map.Entry<String, String> entry : map.entrySet()) {
    
                                    if (entry.getKey().equals("name")) {
    
                                                    nameMap = JSON.parseObject(entry.getValue(), HashMap.class);
    
                                    }
    
                                    if (entry.getKey().equals("index")) {
    
                                                    indexMap = JSON.parseObject(entry.getValue(), HashMap.class);
    
                                    }
    
                    }
    
    
    
    
                    // 清空配置表
    
                    if (nameMap.size() == 0 || indexMap.size() == 0) {
    
                                    basicInfoMapper.deleteContestConfig();
    
                                    return ResponseEntity.ok().body(ResultVOUtil.successSimple());
    
                    }
    
                    // 组装list
    
                    for (Map.Entry<String, String> entry : map.entrySet()) {
    
                                    if (entry.getKey().equals("name")) break;
    
                                    if (entry.getKey().equals("index")) break;
    
                                    HashMap<String, Object> mapp = new HashMap<>();
    
                                    mapp.put("uuid", entry.getKey());
    
                                    mapp.put("config", entry.getValue());
    
                                    mapp.put("name", nameMap.get(entry.getKey()));
    
                                    mapp.put("indexid", indexMap.get(entry.getKey()));
    
                                    list.add(mapp);
    
                    }
    
                    Boolean flag = false;
    
                    try {
    
                                    // 先存入临时表
    
                                    basicInfoMapper.updateContestConfigTemp(list);
    
                                    // 再删除原始表里面的所有数据
    
                                    basicInfoMapper.deleteAllContestConfig();
    
                                    // 最后将临时表的数据复制到原始表中
    
                                    basicInfoMapper.updateContestConfig();
    
                                    // 最后删除临时的规则表,方便下一次的数据存储
    
                                    basicInfoMapper.deleteContestsConfigTemp();
    
                    } catch (Exception e) {
    
                                    flag = true;
    
                                    throw new RuntimeException("New Error");
    
                    }
    
                    if (flag) return ResponseEntity.ok().body(ResultVOUtil.error(1, "操作失败,请联系管理员"));
    
                    return ResponseEntity.ok().body(ResultVOUtil.successSimple());
    
    }
     


    编辑加分规则:

    • 这是系统最主要的功能,也是比较复杂的部分。一是因为整个实现的思路并不常见,而是有比较多的东西可以/需要配置,所以稍显复杂。以设置叶子节点为例,代码如下。其实可以看到,首先要遍历配置数据(JSON格式),然后再给叶子节点设置新的属性,同时还要判断用户的输入是否合法。设置根节点仅仅是加分规则配置的好多个功能之一而已!
    [JavaScript] 纯文本查看 复制代码
    setroot(node, data) {
    
            // 取消设置为叶子节点
    
            if (data.tag == 'root') {
    
                    let parent = node.parent
    
                    let newChild = { uuid: data.uuid, name: data.name, children: [] }
    
                    let children = parent.data.children || parent.data
    
                    let index = children.findIndex(d => d.uuid === data.uuid)
    
                    children.splice(index, 1)
    
                    if (!parent.data.children) {
    
                            this.$set(parent.data, 'children', [])
    
                    }
    
                    parent.data.children.push(newChild)
    
                    return
    
            }
    
            // 设置叶子节点
    
            if (data.children.length > 0) return this.$msg.error("存在下一级的时候不能设置为叶子节点")
    
            let temp = {
    
                    uuid: data.uuid,
    
                    name: data.name,
    
                    tag: 'root',
    
                    score: 0
    
            }
    
            this.$prompt('请为叶子节点设置分值,最多保留两位小数', '提示', {
    
                    confirmButtonText: '确定',
    
                    cancelButtonText: '取消'
    
            }).then(({ value }) => {
    
                    if (isNaN(value) || value.trim().length == 0) return this.$msg.error("请输入正确的数值")
    
                    temp.score = value
    
                    let parent = node.parent
    
                    let children = parent.data.children || parent.data
    
                    let index = children.findIndex(d => d.uuid === data.uuid)
    
                    children.splice(index, 1)
    
                    parent.data.children.push(temp)
    
            }).catch(()=>{return this.$msg.error("输入加分分值才能设置为叶子节点")})
    
    }
     
     
    学分申请:
    • 这是系统最核心的功能之一。实现起来也是比较复杂的,因为系统需要根据配置文件去自动形成多级选择菜单,同时要根据用户的选择去读取该菜单下的加分分值到底是多少;用户切换主规则的时候,还需要动态的去加载配置,然后进行处理。这个也只算是学分申请的一小部分而已!
    [JavaScript] 纯文本查看 复制代码
    // 选择某个比赛后搜索比赛的相关配置
    
    async handleSelect(item) {
    
            let {data: res} = await this.$http.post('/getContestConfigById', this.$qs.stringify({id: item.id}))
    
            if (!res) return
    
            if (res.code != 0) return this.$msg.error(res.message)
    
            this.curLevelConfig = JSON.parse('[' + res.data.classconfig + ']')
    
            this.stepForm.ruleid = res.data.uuid
    
            this.stepForm.name = res.data.name
    
            this.toNext()
    
    },

     

    三、系统界面一览

     

     
    登陆页面:

     

    教师端:

     

    学生端:
    管理员端:
    学分申请:

    学分评价结果总览:



    学分评价整体结果:



    处理学分申请异议:



    管理常见专业赛事配置:

    学生信息&学分管理:



    加分规则配置:



    学生综合素质可视化分析:

    四、配置运行
     

    项目下载

    • github克隆:前端地址https://github.com/quarkape/cqes4cs,后端地址https://github.com/quarkape/cqes4csbe(包含了SQL、静态资源文件、接口文档)
    • gitee镜像:前端地址https://gitee.com/quarkape/cqes4cs,后端地址https://gitee.com/quarkape/cqes4csbe(包含了SQL、静态资源文件、接口文档)
     
     
    运行环境
    • MySQL5.7
    • Redis3.0
    • Vue2.6
    • SpringBoot4
    运行说明
    • 如果你上手起来比较困难,可以看看视频版本的教程:https://www.bilibili.com/video/BV1KG4y1Z7Pd?share_source=copy_web

     

    前端搭建
    • 安装各种依赖。在项目根目录下面的package.conf中可以找到开发依赖和生产依赖的列表。开发环境依赖使用npm install 依赖名称 -D进行安装,生产环境依赖可以使用npm install 依赖名称 -S进行安装。
    • 运行。安装完成后,运行npm run serve没有问题的话就可以了。地址栏输入http://localhost:8080就可以进入登录页。

    后端搭建

    • 安装各类依赖。在项目根目录下面的pom.xml中可以看到依赖列表,使用maven下载下来就可以了。如果你使用的是IDEA的话,你可以导入项目文件,IDEA会自动给你下载pom文件里面的各个依赖。
    • 运行。安装完成后,运行项目,没有报错即可。

    数据导入

    • 将后端项目中的SQL文件导入到数据库中即可。我是用的MySQL WorkBench工具导入的。具体操作是:连接本地MySQL,新建一个名为cqes4cs的数据库,软件右上角file-open SQL Script-选择本项目的sql文件,在打开的脚本中前20行都是注释,在注释结束后、正式的SQL语句之前,加上use cqes4cs;这行代码,执行即可。

    Redis和数据库

    • 我用的phpstudy最新版来安装MySQL,数据库用户名和密码都为root。
    • 我参照网上的教程把下载安装的Redis,Redis端口默认,密码设置的是kkty。注意你安装的时候要么修改redis的配置文件,把密码改为kkty;要么你自己在redis的配置文件中设置别的密码,然后在后端项目中的application.yml中把redis密码那一行的配置给修改了。
    • 记得运行的时候启动Redis。
    • 你也可以使用php study安装和配置redis,不过我没有用过这个功能。

    静态资源映射

    • 系统用的静态资源映射做静态资源管理。
    • 静态资源文件夹结构请参照项目文件中Readme.md部分的说明。另外完整的文件夹结构在后端项目的assets里面可以找到。
    • 静态资源文件夹的位置必须要与后端项目中MvcConfig.java文件中的文件地址要一致,不然静态资源文件无法正常访问。

    系统使用入门

    • 初次使用的时候,需要登录管理员账号:用户名admin,密码admin,然后新增一个教师账号,管理年级建议设置为2021,因为我给的静态资源里面有一些预先提供的数据,大家到时候可以直接用。
    • 右上角头像点击,然后退出管理员账号,使用上一步新建的教师账号登录系统。在学生管理中,上传静态资源文件夹student目录下的文件,系统会自动导入学生账号,学生学号为学生系统的登录用户名和账号。
    • 在教师系统中,在学生评价页面,点击上传学生成绩,选择静态资源文件夹grades目录下面的默认文件,可以导入默认的成绩数据,导入后,可以切换年份为2021-2022年,查看学生成绩。
    • 第2步导入学生账号之后,登录学生账号,已51214108037为例,登陆后可以查看综合素质评价结果,在学分管理页面可以申请学分。

    【重要说明】

    • 因为加分规则比较难配置,所以数据库会预先配置好一些加分规则,建议不要删除。如果真正要用的时候再删除也不迟。
    • 必须要先上传学生成绩之后,学生评价页面才会有结果,因为当初设计的时候就默认学业成绩必须是综合素质评价的一部分。其他加分可以没有,但是学生学业成绩必须要有。

     

    五、写在后面
     
    • 其实整个系统实现起来还是很耗费时间的,功能个人角色也比较完善,作用也比较突出,但是配置起来确实需要一定的时间和精力
    • 整个系统的核心思想囿于篇幅不能详细说明,个人认为初次理解起来比较费劲,毕竟这个系统功能和作用在那里对吧。反正感兴趣的小伙伴可以私戳~
    • 其实本来有线上的体验地址的,但是服务器过期了,没办法让大家即时访问查看效果~