(微信小程序毕业设计)校园圈子小程序的设计与实现(附源码+论文)
大家好!我是岛上程序猿,感谢您阅读本文,欢迎一键三连哦。
目录
一、项目简介
目前各个高校基本都有各自的社区,但仍以传统的BBS、论坛等形式为主,移动互联网形式下,多以班级、社团为单位组织的QQ群、微信群为主,多未形成基于移动端的App化社群区。而以学习、校园生活作为目的的交流社区、圈子,可以极大地丰富学习资源、提供便捷的学习途径并激发学习主动性,提升学习效率、增进互助交友。本研究项目基于微信小程序和Java程序实际语言,搭建一款校园圈子小程序,利用移动互联网手段解决上述问题。
二、系统设计
2.1微信小程序开发流程
(1)获取微信小程序的 App ID
通过微信登录到微信公众平台官方网站,注册小程序的账号获取App ID,并补充小程序相关的基本信息,包括名称,图标,描述等。不可直接使用服务号或订阅号的 App ID。
(2)下载微信开发者工具
在微信的官网下载微信开发者使用工具,一共有三个版本,Windows64、Windows32、Mac,选择合适操作系统的版本下载并安装;
(3)创建项目
下载安装完成微信开发者工具后,首先需要使用开发者的微信来进行扫码登录,随后该界面将会出现填写小程序的App ID 和项目文件存储路径的页面,选择好存储文件夹后,填写项目名称,随后点击新建就可以完成项目的创建。
微信小程序研究团队有很人性化的设计,为便于初学者快速的了解和掌握小程序的代码结构与特性,会协助初学者建立一个简单的 demo 项目来方便学习。
(4)编写代码
在微信小程序中编写代码需要符合小程序的开发规范,小程序项目的主体是 app 文件,页面则由 Pages 所创建。描述项目整体的全局文件主要有三个:
(5) 创建页面
微信小程序所创建的每一个具体页面都在 pages 目录下,但是创建的页面需要在 app.json 的文件中写出 page 的页面与路径,才可以在 pages 目录下看到生成的页面。
Pages 目录下所创建每一个小程序的页面,在对应的页面之下都会自动生成四个文件,后缀不同,分别是用于描述页面的.js脚本文件,实现页面结构.wxml文件,描述展现样式的.wxss,用来配置页面文件的.json文件[8]。
(6) 手机预览
开发者工具菜单栏点击预览,会出现当前小程序的二维码,用手机扫一扫可以实现在手机上展示,但是这个二维码具有时效性。
2.2数据库设计
数据库中需要存储用户及各个模块子功能等基本信息以及用户的历史行为信息,这些信息将会被展示在应用端的用户界面上并且会被用于进行数据分析。在该数据概念设计过程中,我们使用了实体联系模型(EntityRelationship Model,简称ER模型)来确定系统实体(Entity)、实体的属性(attribute)以及实体间的联系(relationship)
三、系统项目部分截图
3.1主页功能
主页是小程序的核心功能,设计有学习互助、失物招领、交易信息和美食分享几个板块,用户可以通过文字、图片、视频等多种方式,在不同的板块编辑帖子并发布,其他用户可以浏览并进行互动。同时主页的各个板块还支持根据帖子点击热度进行推荐和排序。效果如下图所示:
3.2学习互助板块
支持用户通过文字+图片的方式发布学习或生活相关的问题,其他用户可以浏览并予以解答。实现效果如下图:
物品交易板块
支持用户通过文字+图片的方式发布物品交易信息,其他用户可以浏览并沟通交易。实现效果如下图:
3.3失物招领板块
支持用户通过文字+图片的方式发布失物招领信息,其他用户可以浏览并回复。实现效果如下图:
3.4 后台管理界面
后台是针对管理员的后台管理界面,便于管理员对小程序进行维护和管理。后台使用admin账户进行登陆,实现效果如下图所示:
四、论文目录
绪论 6
1.1研究背景 6
1.1.1 社区的概念 6
1.1.2 互联网社区的发展历程 6
1.1.3微信小程序简介 9
1.2研究的意义 10
1.3 论文结构 11
2.项目可行性分析 12
2.1系统可行性分析 12
2.1.1经济可行性 13
2.1.2技术可行性 13
2.3系统需求分析 14
3.相关技术简介 15
3.1小程序相关技术介绍 16
3.1.1 JSON 16
3.1.2 XML 17
3.1.3 CSS 17
3.1.4 JavaScript 18
3.2 MINA框架 19
3.2.1逻辑层 21
3.2.2视图层 22
3.2.3数据层 22
3.3数据库 23
4.开发流程和开发环境 25
4.1微信小程序开发流程 25
4.2项目开发方法及部署环境 26
4.3数据库设计 27
5.系统设计与实现 28
5.1 注册和登陆功能 28
5.2 主页功能 29
5.2.1 学习互助板块 30
5.2.2物品交易板块 30
5.2.3失物招领板块 31
5.2.4运动打卡板块 32
5.2.4美食推荐板块 33
5.3 用户分享功能 34
5.4 反馈讨论功能 35
5.5 个人中心功能 36
5.5 后台功能 37
6.软件测试 38
6.1软件测试的目的 38
6.2 软件测试的常用方式 38
6.2.1静态测试和动态测试 39
6.2.2黑盒测试、白盒测试和灰盒测试 39
6.2.4手动测试和自动化测试 40
6.3测试用例 40
5.4测试结果 42
6.研究总结 42
参考文献 44
致 谢 45
五、部分核心代码
4.1 BILL部分
package com.ideabobo.model;import java.io.Serializable;public class Bill implements Serializable { private Integer id; private String gids; private String price; private String user; private String uid; private String shop; private String bill; private String openid; private String ndate; private String total; private String way; private String gnames; private String sid; private String tel; private String address; private String note; private String state; private String statecn; private String cuidan; private Integer qid; private String qusername; private String qtel; private String img; private static final long serialVersionUID = 1L; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getGids() { return gids; } public void setGids(String gids) { this.gids = gids == null ? null : gids.trim(); } public String getPrice() { return price; } public void setPrice(String price) { this.price = price == null ? null : price.trim(); } public String getUser() { return user; } public void setUser(String user) { this.user = user == null ? null : user.trim(); } public String getUid() { return uid; } public void setUid(String uid) { this.uid = uid == null ? null : uid.trim(); } public String getShop() { return shop; } public void setShop(String shop) { this.shop = shop == null ? null : shop.trim(); } public String getBill() { return bill; } public void setBill(String bill) { this.bill = bill == null ? null : bill.trim(); } public String getOpenid() { return openid; } public void setOpenid(String openid) { this.openid = openid == null ? null : openid.trim(); } public String getNdate() { return ndate; } public void setNdate(String ndate) { this.ndate = ndate == null ? null : ndate.trim(); } public String getTotal() { return total; } public void setTotal(String total) { this.total = total == null ? null : total.trim(); } public String getWay() { return way; } public void setWay(String way) { this.way = way == null ? null : way.trim(); } public String getGnames() { return gnames; } public void setGnames(String gnames) { this.gnames = gnames == null ? null : gnames.trim(); } public String getSid() { return sid; } public void setSid(String sid) { this.sid = sid == null ? null : sid.trim(); } public String getTel() { return tel; } public void setTel(String tel) { this.tel = tel == null ? null : tel.trim(); } public String getAddress() { return address; } public void setAddress(String address) { this.address = address == null ? null : address.trim(); } public String getNote() { return note; } public void setNote(String note) { this.note = note == null ? null : note.trim(); } public String getState() { return state; } public void setState(String state) { this.state = state == null ? null : state.trim(); } public String getStatecn() { return statecn; } public void setStatecn(String statecn) { this.statecn = statecn == null ? null : statecn.trim(); } public String getCuidan() { return cuidan; } public void setCuidan(String cuidan) { this.cuidan = cuidan == null ? null : cuidan.trim(); } public Integer getQid() { return qid; } public void setQid(Integer qid) { this.qid = qid; } public String getQusername() { return qusername; } public void setQusername(String qusername) { this.qusername = qusername == null ? null : qusername.trim(); } public String getQtel() { return qtel; } public void setQtel(String qtel) { this.qtel = qtel == null ? null : qtel.trim(); } public String getImg() { return img; } public void setImg(String img) { this.img = img == null ? null : img.trim(); }}
4.2User部分
package com.ideabobo.model;import java.io.Serializable;public class User implements Serializable { private Integer id; private String username; private String passwd; private String roletype; private String email; private String tel; private String qq; private String wechat; private String sex; private String birth; private String img; private String sid; private String address; private String tags; private String fids; private String statecn; private String favs; private Integer qd; private String note; private Integer fs; private Integer money; private static final long serialVersionUID = 1L; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username == null ? null : username.trim(); } public String getPasswd() { return passwd; } public void setPasswd(String passwd) { this.passwd = passwd == null ? null : passwd.trim(); } public String getRoletype() { return roletype; } public void setRoletype(String roletype) { this.roletype = roletype == null ? null : roletype.trim(); } public String getEmail() { return email; } public void setEmail(String email) { this.email = email == null ? null : email.trim(); } public String getTel() { return tel; } public void setTel(String tel) { this.tel = tel == null ? null : tel.trim(); } public String getQq() { return qq; } public void setQq(String qq) { this.qq = qq == null ? null : qq.trim(); } public String getWechat() { return wechat; } public void setWechat(String wechat) { this.wechat = wechat == null ? null : wechat.trim(); } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex == null ? null : sex.trim(); } public String getBirth() { return birth; } public void setBirth(String birth) { this.birth = birth == null ? null : birth.trim(); } public String getImg() { return img; } public void setImg(String img) { this.img = img == null ? null : img.trim(); } public String getSid() { return sid; } public void setSid(String sid) { this.sid = sid == null ? null : sid.trim(); } public String getAddress() { return address; } public void setAddress(String address) { this.address = address == null ? null : address.trim(); } public String getTags() { return tags; } public void setTags(String tags) { this.tags = tags == null ? null : tags.trim(); } public String getFids() { return fids; } public void setFids(String fids) { this.fids = fids == null ? null : fids.trim(); } public String getStatecn() { return statecn; } public void setStatecn(String statecn) { this.statecn = statecn == null ? null : statecn.trim(); } public String getFavs() { return favs; } public void setFavs(String favs) { this.favs = favs == null ? null : favs.trim(); } public Integer getQd() { return qd; } public void setQd(Integer qd) { this.qd = qd; } public String getNote() { return note; } public void setNote(String note) { this.note = note == null ? null : note.trim(); } public Integer getFs() { return fs; } public void setFs(Integer fs) { this.fs = fs; } public Integer getMoney() { return money; } public void setMoney(Integer money) { this.money = money; }}
获取源码或论文
如需对应的源码,可以评论或者私信都可以。
来源地址:https://blog.csdn.net/m0_46388260/article/details/130646752
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341