基于php+vue+mysql的社团活动助手微信小程序

项目介绍

随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代,社团活动助手就是信息时代变革中的产物之一。

任何系统都要遵循系统设计的基本流程,本系统也不例外,同样需要经过市场进行调研,论文需求进行分析,概要设计,系统详细设计,测试和编码等步骤,设计并实现了社团活动助手。系统选用 php语言,应用Vscode开发工具, MySQL为后台数据库。系统主要包括用户、社团活动、报名信息、签到登记、投票项目、投票信息、奖励情况、系统管理等功能模块。

经过认真细致的研究,精心准备和规划,最后测试成功,系统可以正常使用。分析功能调整与社团活动实现的实际需求相结合,讨论了 php语言开发社团活动助手的使用。
在这里插入图片描述

开发环境

编程语言:PHP
数据库 :Mysql
系统架构:B/S
后端框架:ThinkPHP
编译工具:PHPStudy
支持定做:java/php/python/android/小程序vue/爬虫/c#/asp.net

系统实现

5.1用户功能模块(微信端)
用户注册,在用户注册页面通过填写账号、姓名、密码、性别、联系电话等信息进行注册操作;如图5-1所示。
在这里插入图片描述

图5-1用户注册界面图

用户登录,用户通过登录页面输入账号和密码,并点击登录进行系统登录操作,如图5-2所示。
在这里插入图片描述

图5-2用户登录界面图

用户登陆系统后,可以对首页、社团活动、投票项目、我的等功能进行详细操作,如图5-3所示。
在这里插入图片描述

图5-3系统首页界面图

用户信息,在用户信息页面可以填写账号、姓名、密码、性别、联系电话、头像等信息,进行保存,如图5-4所示。
在这里插入图片描述

图5-4用户信息界面图

投票项目,在投票项目页面可以查看投票标题、封面、选项a、选项b、选项c、选项d、发布时间、投票内容等信息进行投票等操作,如图5-5所示。
在这里插入图片描述

图5-5投票项目界面图

我的,在我的页面可以对社团活动、报名信息、签到登记、投票项目、投票信息、奖励情况、我的收藏管理等详细信息,如图5-6所示。
在这里插入图片描述

图5-6我的界面图

社团活动,在社团活动页面通过查看社团名称、活动分类、活动名称、活动图片、开始时间、结束时间、活动地点等详细信息,进行收藏、报名,如图5-7所示。
在这里插入图片描述

图5-7社团活动界面图

投票信息,在投票信息页面通过查看投票编号、投票标题、封面、用户账号、投票时间、投票结果等详细信息,如图5-8所示。
在这里插入图片描述

图5-8投票信息界面图

签到登记,在签到登记页面通过查看社团名称、活动分类、活动名称、活动图片、活动地点、签到类型、账号、姓名、签到时间、地址等详细信息,如图5-9所示。
在这里插入图片描述

图5-9签到登记界面图

奖励情况,在奖励情况页面通过查看社团名称、活动分类、活动名称、账号、姓名、奖励积分、登记时间等详细信息,如图5-10所示。
在这里插入图片描述

图5-10奖励情况界面图

5.2管理员功能模块(服务端)
管理员登录,管理员通过登录页面输入用户名、密码,选择角色并点击登录进行系统登录操作,如图5-11所示。
在这里插入图片描述

图5-11管理员登录界图面

管理员登陆系统后,可以对首页、个人中心、用户管理、活动分类管理、社团活动管理、报名信息管理、签到登记管理、投票项目管理、投票信息管理、奖励情况管理、系统管理等功能进行相应操作,如图5-12所示。
在这里插入图片描述

图5-12管理员功能界图面

用户管理,在用户管理页面可以对账号、姓名、性别、联系电话、头像等内容进行详情、修改或删除等操作,如图5-13所示。
在这里插入图片描述

图5-13用户管理界面图

活动分类管理,在活动分类管理页面可以对活动分类等内容进行详情,修改或删除等操作,如图5-14所示。
在这里插入图片描述

图5-14活动分类管理界面图

社团活动管理,在社团活动管理页面可以对社团名称、活动分类、活动名称、活动图片、开始时间、结束时间、活动地点等内容进行详情、修改或删除等操作,如图5-15所示。
在这里插入图片描述

图5-15社团活动管理界面图

报名信息管理,在报名信息管理页面可以对活动编号、社团名称、活动分类、活动名称、活动图片、活动地点、账号、姓名、报名时间等内容进行详情、修改或删除等操作,如图5-16所示。
在这里插入图片描述

图5-16报名信息管理界面图

签到登记管理,在签到登记管理页面可以对社团名称、活动分类、活动名称、活动图片、活动地点、签到类型、账号、姓名、签到时间、地址等内容进行详情,修改、删除等操作,如图5-17所示。
在这里插入图片描述

图5-17签到登记管理界面图

投票项目管理,在投票项目管理页面可以对投票标题、封面、选项a、选项b、选项c、选项d、发布时间等内容进行详情,修改、删除等操作,如图5-18所示。
在这里插入图片描述

图5-18投票项目管理界面图

投票信息管理,在投票信息管理页面可以对投票编号、投票标题、封面、用户账号、投票时间、投票结果等内容进行详情,修改、删除等操作,如图5-19所示。
在这里插入图片描述

图5-19投票信息管理界面图

奖励情况管理,在奖励情况管理页面可以对社团名称、活动分类、活动名称、账号、姓名、奖励积分、登记时间等内容进行详情,修改、删除等操作,如图5-20所示。
在这里插入图片描述

图5-20奖励情况管理界面图

系统管理;管理员在该页面为轮播图管理界面、公告信息。管理员可以在此页面进行首页轮播图的管理,公告信息发布,通过新建操作可在轮播图中加入新的图片,还可以对以上传的图片进行修改操作,以及图片的删除操作,如图5-21 5-22所示。
在这里插入图片描述

图5-21轮播图管理界面图
在这里插入图片描述

图5-22公告信息界面图

核心代码

<?php
session_start();
class ConfigController extends CommonController {
	public function __construct()
    {
        header("Access-Control-Allow-Origin: *");
        header("Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT, DELETE");
        header('Access-Control-Allow-Headers:Origin,Content-Type,Accept,token,X-Requested-With,device');
    }
    public $columData = [
        'id','name','value'
    ];
    /**
     * 分页,列表
     * get
     */
    public function page(){
        $token = $this->token();
        $tokens = json_decode(base64_decode($token),true);
        if (!isset($tokens['id']) || empty($tokens['id'])) exit(json_encode(['code'=>403,'msg'=>"你还没有登录。"]));
        $userid = $tokens['id'];
        $page = isset($_GET['page'])?$_GET['page']:"1";
        $limt = isset($_GET['limit'])?$_GET['limit']:"10";
        $sort = isset($_GET['sort'])?$_GET['sort']:"id";
        $order = isset($_GET['order'])?$_GET['order']:"asc";
        $where = "";//查询条件
        $sql = "select * from `config`".$where;
        $count = table_sql($sql);
        if ($count->num_rows < 1){
            $numberCount = 1;
        }else{
            $numberCount = $count->num_rows;
        }
        $page_count = ceil($numberCount/$limt);//页数
        $startCount = ($page-1)*10;
        $lists = "select * from `config` ".$where." order by ".$sort." ".$order." limit ".$startCount.",".$limt;
        $result = table_sql($lists);
        $arrayData = array();
        if ($result->num_rows > 0) {
            while ($datas = $result->fetch_assoc()){
                array_push($arrayData,$datas);
            }
        }
        exit(json_encode([
            'code'=>0,
            'data' => [
                "total" => $numberCount,
                "pageSize" => $limt,
                "totalPage" => $page_count,
                "currPage" => $page,
                "list" => $arrayData
            ]
        ]));
    }
    /**
     * 分页,列表list
     * get
     */
    public function lists(){
        $page = isset($_GET['page'])?$_GET['page']:"1";
        $limt = isset($_GET['limit'])?$_GET['limit']:"10";
        $sort = isset($_GET['sort'])?$_GET['sort']:"id";
        $order = isset($_GET['order'])?$_GET['order']:"asc";
        $where = " where 1 ";//查询条件
        $sql = "select * from `config`".$where;
        $count = table_sql($sql);
        if ($count->num_rows < 1){
            $numberCount = 1;
        }else{
            $numberCount = $count->num_rows;
        }
        $page_count = ceil($numberCount/$limt);//页数
        $startCount = ($page-1)*10;
        $lists = "select * from `config` ".$where." order by ".$sort." ".$order." limit ".$startCount.",".$limt;
        $result = table_sql($lists);
        $arrayData = array();
        if ($result->num_rows > 0) {
            while ($datas = $result->fetch_assoc()){
                array_push($arrayData,$datas);
            }
        }
        exit(json_encode([
            'code'=>0,
            'data' => [
                "total" => $numberCount,
                "pageSize" => $limt,
                "totalPage" => $page_count,
                "currPage" => $page,
                "list" => $arrayData
            ]
        ]));
    }
    /**
     * 新增数据接口
     * post
     */
    public function save(){
        $token = $this->token();
        $tokens = json_decode(base64_decode($token),true);
        if (!isset($tokens['id']) || empty($tokens['id'])) exit(json_encode(['code'=>403,'msg'=>"你还没有登录。"]));
        $userid = $tokens['id'];
        $keyArr = $valArr = array();
        $tmpData = strval(file_get_contents("php://input"));//Content-Type: application/json 需要用到php://input 处理输入流
        if (!empty($tmpData)&& isset($tmpData)){
            $postData = json_decode($tmpData,true);
            foreach ($postData as $key => $value){
                if (in_array($key, $this->columData)){
                    if(!empty($value) || $value === 0) {
                        array_push($keyArr,"`".$key."`");
                        array_push($valArr,"'".$value."'");
                    }
                }
            }
        }
        $k = implode(',',$keyArr);
        $v = implode(',',$valArr);
        $sql = "INSERT INTO `config` (".$k.") VALUES (".$v.")";
        $result = table_sql($sql);
        if (!$result) exit(json_encode(['code'=>500,'msg'=>"新增失败"]));
        exit(json_encode(['code'=>0]));
    }

    /**
     * 更新接口
     * post
     */
    public function update(){
        $tmpData = strval(file_get_contents("php://input"));
        $postData = json_decode($tmpData,true);
        $length = count($postData);
        $v = array();
        $i=0;
        foreach ($postData as $key => $value){
            if (in_array($key, $this->columData)){

                if ($key == "id"){
                    $id = $value;
                }
                array_push($v,$key." = '".$value."'");
            }

        }
        $value = implode(',',$v);
         $sql = "UPDATE config SET ".$value." where id = ".$id;
        $result = table_sql($sql);
        if (!$result) echo json_encode(['code'=>500,'msg'=>"修改失败"]);
        exit(json_encode(['code'=>0]));
    }
    /**
     * 查询一条数据
     * get
     */
    public function info($id=false){
        $token = $this->token();
        $tokens = json_decode(base64_decode($token),true);
        if (!isset($tokens['id']) || empty($tokens['id'])) exit(json_encode(['code'=>403,'msg'=>"你还没有登录。"]));
        $userid = $tokens['id'];
        $name = isset($_REQUEST['name'])? $_REQUEST['name']:"";
        if (!empty($id)){
            $where = "`id` = ".$id;
        }else{
            $where = "`name` = ".$name;
        }
        $sql = "select * from `config` where ".$where;
        $result = table_sql($sql);
        if (!$result) echo json_encode(['code'=>500,'msg'=>"查询数据发生错误。"]);
        if ($result->num_rows > 0) {
            // 输出数据
            while($row = $result->fetch_assoc()) {
                $lists = $row;
            }
        }
        exit(json_encode([
            'code'=>0,
            'data'=> $lists
        ]));
    }

}

论文参考

在这里插入图片描述

目录
摘 要 1
Abstract 1
1 绪论 1
1.1 课题背景 1
1.2 课题研究现状 1
1.3 课题意义 2
1.4 本文研究内容 2
2 系统开发环境 4
2.1 php语言介绍 4
2.2 微信小程序简介 4
2.3 B/S架构 4
2.4 MySQL环境配置 5
3 系统分析 7
3.1 系统可行性分析 7
3.1.1 经济可行性 7
3.1.2 技术可行性 7
3.1.3 运行可行性 7
3.2 小程序现状分析 7
3.3 功能需求分析 8
3.4系统流程分析 10
3.4.1操作流程 10
3.4.2添加信息流程 10
3.4.3删除信息流程 11
4 系统设计 12
4.1 系统设计主要功能 12
4.2 数据库设计 12
4.2.1 数据库设计规范 12
4.2.2 E/R图 12
4.2.3 数据表 14
5 系统实现 20
5.1用户功能模块(微信端) 20
5.2管理员功能模块(服务端) 23
6 系统测试 30
6.1 功能测试 30
6.2 可用性测试 30
6.3 性能测试 31
6.4 测试结果分析 31
结 论 32
参考文献 33
致 谢 34

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_3306428634

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值