架构设计
架构逻辑
招财喵的逻辑架构由四层模型(表示层、业务层、服务层、持久化层)构成 。
-
表示层
用户使用的微信小程序作为表示层,提供UI界面,供用户调用服务层提供的各种服务如发布问卷,发布问题,填写问卷,回答问题等等。
-
业务层
微信云平台充当业务层的角色,将用户的输入传递到各个服务层的模块中。
-
服务层
云开发的云函数充当了服务层,根据表示层传来的数据访问对象,创建模型,更新、返回持久化层的数据,执行特定的应用逻辑和操作。
-
持久化层
云开发的数据库和存储模块充当持久化层,持久化存储用户信息,问卷,问题的相关数据。
架构逻辑图
前端代码目录
前端代码位于目录./miniprogram/pages,每一个文件夹表示一个页面,列出所有文件夹并标明对应页面如下。其中每一个文件夹包含对应的.js, .json, .wxml, .wxss四个文件,共15个文件夹60个文件。
miniprogram
└─pages
├─aboutUs // 关于我们
├─answerQA // 回答问题
├─customerService // 客服中心
├─item // 填写问卷
├─login // 登录注册
├─mine // 个人中心
├─myAnswer // 我的回答
├─myInfo // 个人信息
├─myQuestion // 问题管理
├─myWallet // 我的钱包
├─posted // 问卷管理
├─publish2 // 任务发布
├─QA // 问题发布
├─questionnaire // 问卷发布
└─task // 任务列表
云函数代码目录
云函数代码位于目录./cloudfunctions,每一个文件夹表示一个云函数,列出所有文件夹并标明对应云函数如下。其中每一个文件夹至少包含index.js, package.json两个文件,共21个文件夹45个文件。
cloudfunctions
├─add_info // 添加当前用户的基本信息
├─ask_question // 发布问题
├─clean_verification // 属于自动调用的函数
├─fill_in_questionnaire // 添加某个问卷的填写结果
├─get_all_questionnaire // 获取所有问卷
├─get_answer // 获取某个问卷的所有填写结果
├─get_balance // 获取当前用户的喵币余额
├─get_balance_record // 获取当前用户的交易记录
├─get_question // 获取所有问题
├─get_questionnaire_detail // 获取某个问卷的详情
├─get_reply // 获取某个问题的所有回答
├─get_user_question // 获取与当前用户相关的所有问题
├─get_user_questionnaire // 获取与当前用户相关的所有问卷
├─login // 用户登录
├─recv_verification // 匹配用户注册的验证码
├─release_questionnaire // 发布问卷
├─reply_question // 添加某个问题的回答结果
├─send_verification // 发送用户注册的验证码到邮箱
├─update_balance // 更新当前用户的喵币余额
├─update_info // 更新当前用户的个人信息
└─update_like // 更新当前用户对问题回答的点赞状态
其它代码目录
全局文件包括./miniprogram/app.js, ./miniprogram/app.json, ./miniprogram/app.wxss,分别是微信小程序的入口、全局配置以及全局样式。
工具文件为./miniprogram/utils.js,定义了前端的常用函数。
云函数的测试代码目录为./miniprogram/test/testCloudFunction,通过一个页面来测试所有云函数功能的正确性,测试时需要调整全局配置的页面列表。