校园场景中,教务功能往往最为常用,本文将介绍云开发如何贯穿教务助手小程序从灵感到实现的全过程,助力需求的快速完成。

▌项目背景

本项目从原型设计、前端到后端的构思以及开发,历时数月。下面我就讲讲从教务助手小程序从构思到开发实现。

1、灵感来源

教务小程序的灵感来源:用完即走,查个成绩和课表,无需下载app或去翻看公众号内的历史内容。

加上本人很久以前就想实现开发一个类似的app,但app的开发成本太高了。幸好小程序·云开发的出现解决了我的需求,它的优势能快速动手开发一款应用类小程序。

2、构思

教务小程序需要核心就是:成绩查询课表查询教务通知查询!那么问题来了,学校教务处只有网页版,教务小程序数据从何而来呢?
经过一系列思考,百度各种问题,思路就来了:
后端模拟登陆——拿到页面数据——整理数据——反馈到小程序前端渲染

▌项目开发

1、后端

后端的实现完全基于云开发
部分目录:

采用云开发后端node.js语言,主要利用模块有:

Router模块:

const cloud = require('tcb-admin-node');
//   npm  install tcb-router
const TcbRouter = require('tcb-router');
cloud.init({env: '//'
})
const db = cloud.database();
const _ = db.command;
// 云函数入口函数
exports.main = async (event, context) => {const app = new TcbRouter({ event });/** 教务处登陆 eg*/app.router('login', async (ctx, next) => {const test = require('login/login.js');ctx.body = test.main(event, context);});/**查取成绩*/app.router('getpoint', async (ctx, next) => {const logList = require('getpoint/index.js');ctx.body = logList.main(event, context);});/**学术活动*/app.router('academic', async (ctx, next) => {const userList = require('schoolnews/academic.js');ctx.body = userList.main(event, context);});app.router('xsxx', async (ctx, next) => {const userList = require('schoolnews/xsxx.js');ctx.body = userList.main(event, context);});return app.serve();
}

Cherrio实现课表成绩等网页解析:

const cloud = require('tcb-admin-node')
const rp = require('request-promise');
var cheerio = require("cheerio");
cloud.init()
module.exports = {main: async (event, context) => {var url ='URL'var res = await rp({method: 'get',uri: url,json: false}).then((body) => {var academic = [];var $ = cheerio.load(body);$('.fl').find('dl').each(function (i, elem) {//业务代码未写/****/academic.push({date: date,time:time,title:title,speaker:speaker,place:place,link:link})});return academic}).catch(err => {return err;})return res}
}

数据库access_token定时修改

// 云函数入口文件
const cloud = require('wx-server-sdk'),rp = require('request-promise'),key=require('key.js')
cloud.init({env: "//"
})
//指定数据库环境
const db = cloud.database({env: "//"
}), _ = db.command;
// 云函数入口函数
exports.main = async (event, context) => {try { var res = await rp({method: 'get',uri: url+'?grant_type=client_credential&appid=' + key.APPID + '&secret=' + key.APPSECRET,qs: {},//参数headers: {},//请求头json: true  //是否json数据}).then((body) => {return body}).catch(err => {return {errmsg:"rp函数获取失败"}})
/*将获取的access_token存到数据库*/console.log(res)if (res.hasOwnProperty('access_token')) {await db.collection('key').where({type: "accesstoken"}).update({data: {accesstoken: res.access_token,datearray: _.unshift(new Date(new Date().getTime())),num: _.inc(1)}})} else {console.log("err错误" + res)}} catch (err) {console.log(err)} }

此外还借助了其他模块实现登陆、数据处理(课表等数据格式化)、云开发数据库操作(用户信息储存,消息发布)、用户权限鉴定(确保后台信息安全)等,在此就不赘述。

2、前端

基本上就是“简单粗暴”的进行各种if、var操作;
部分详细介绍如下:

① 课程表:
实现了一键导入(其实课程表这一功能可以单独形成一个通用的小程序上线),每天一卡片形式在首页提醒:今天有什么课,上完没有?

②倒计时页面:
支持自定义添加倒计时项目,给用户自定义能力。

③校历:
利用了日历组件再加以美化。

④打卡:
获取步数,进行运动打卡。

④在线答题:
各专业各学科的考试题库、考研题库、教师资格证题库等。

......

更多功能,就不一一在这里细说了。

▌感悟

本项目从原型设计、前端到后端的构思以及开发,最后上线运营。同时希望大家能够利用好小程序实现自己的想法和创意!

用云开发制作教务助手小程序相关推荐

  1. 用云开发制作教务助手小程序丨实战

    ▌项目背景 本项目由一人承担从后端到前端的构思以及开发,下面我就讲讲从教务助手小程序的构思到开发实现(基于云开发). 1.灵感来源 教务小程序的灵感来源:用完即走,查个成绩和课表,无需下载app或去翻 ...

  2. 微信小程序|基于小程序+云开发制作一个菜谱小程序

    今天吃什么?这是一个让强迫症左右为难的问题,跟随此文基于小程序+云开发制作一个菜谱小程序,根据现有食材一键生成菜谱,省心又省力. 一.小程序 1. 创建小程序

  3. 微信小程序|基于小程序+云开发制作一个租房小程序

    经济发展的同时伴随着大批人群的流动,租房需求一直是持久不衰的话题,如何租好房,好租房,跟随此文一起制作一个租房小程序,让租房不再困难. 一.小程序 1. 创建小程序 2. 首页 3. 房源列表页 4. ...

  4. 修复采集接口版云开发表情包微信小程序源码下载增加制作等功能

    大家好,相信很多人对这个界面的表情包小程序肯定不陌生吧 不错之前该款小程序是属于独立后端的,不管今天所发的这款是云开发的哟 运营着这个表情包的用户应该发现了,最近很多表情包图片都失效了 所以呢,今天小 ...

  5. 云开发表白墙微信小程序源码

    这是一款云开发的表白墙微信小程序 特点是云开发, 安装特别的简单 首先呢小程序账号开通云开发权限 然后把源码上传到微信开发者工具里面 然后点击开发者工具软件上面的云开发,然后点击数据库 在数据库里面创 ...

  6. 小程序源码:全新独家云开发微群人脉小程序源码下载社群空间站

    今天给大家带来一款云开发版本的微群人脉小程序源码 该版本属于采集版本(群二维码自动采集) 该版本属于云开发版本(免服务器和域名) 这是一款不怕封小程序版本 PS:支持用户自主发布那一款还是有点危险因为 ...

  7. 云开发【星座测评小程序+流量主】星座运势小程序源码

    介绍: 云开发[星座测评小程序+流量主]星座运势小程序源码 网盘下载地址: http://kekewl.org/8eYJU8RB6C90 图片:

  8. 云开发表白墙微信小程序源码下载免服务器和域名支持流量主收益

    这是一款云开发的表白墙微信小程序 特点是云开发,所以也就无需服务器和域名的支持了 安装特别的简单 首先呢小程序账号开通云开发权限 然后把源码上传到微信开发者工具里面 然后点击开发者工具软件上面的云开发 ...

  9. 用于校园流浪猫信息记录和分享的小程序源码/微信云开发中大猫谱小程序源码

    用于校园流浪猫信息记录和分享的小程序源码/微信云开发中大猫谱小程序源码 ☑️ 编号:ym478 ☑️ 品牌:无 ☑️ 语言:微信小程序 ☑️ 大小:6.5MB ☑️ 类型:校园流浪猫信息记录和分享 ☑ ...

最新文章

  1. 转图像偏微分方程不适定问题
  2. canvas剪辑区域
  3. NYOJ 1066 CO-PRIME(数论)
  4. 如何将Excel中,某个单元格中的下拉选删除掉
  5. Spring factoryBeanInstanceCache在哪里进行put?
  6. 第17讲:aiohttp 异步爬虫实战
  7. dav1d 0.5.1:更快!
  8. 函数式编程的兴衰与当前之崛起
  9. C++起航篇——bool类型,输入输出,命名空间
  10. 50. 第一个只出现一次的字符
  11. 【mongodb系统学习之三】进入mongodb shell
  12. linux实验二目录与文件查看相关命令,Linux文件和目录管理相关命令(二)
  13. 基于MATLAB步态算法仿真的六足仿生机器人
  14. c语言实验赵欣版答案,赵欣-计算机科学与技术学院
  15. Jquery的普通事件和on的委托事件
  16. 饭后Android 第二餐-复选框CheckBox+开关按钮Switch+单选按钮RadioButton
  17. 更新 TKK 失败,请检查网络连接 报错处理
  18. 中国Web信息博物馆
  19. 计算机专业人才培养评价意见,谈高职计算机专业人才培养综合评价.pdf
  20. Dos用户学Unix指南(1)

热门文章

  1. 使用HTML+Css+transform实现3D导航栏-小白进阶必备
  2. 多多进宝推广团队_什么是多多进宝3大推广方式?什么时候用比较好?
  3. 计算机音乐刚好遇见你乐谱,刚好遇见你简谱
  4. 2021重庆江北中学高考成绩查询,江北中学2016年高考本科上线率87.3%
  5. 潘凯:C++对象布局及多态实现的探索(十三)
  6. 全球市场迅速广泛接受FreeStor飞康SDS转型成功
  7. 解析网络URL地址的二维码
  8. oracle如何高效分页,oracle学习之高效分页存储过程实例
  9. oracle万能分页代码,oracle高效分页存储过程代码
  10. GPS全球卫星定位系统 基本原理