#小程序云开发挑战赛#-多源在线翻译-qyy
发布于 4 年前 作者 yzhu 2102 次浏览 来自 分享

1.作品背景

近年来,中国移动互联网爆发式的增长,使得人们能够利用碎片化时间获取所需信息,带给移动学习新的契机与体验。同时,利用碎片化时间接受的信息对记忆十分困难。该小程序提供用户随时随地对疑难词汇进行查询的功能,并可进行收藏,帮助用户多次利用碎片化时间进行记忆。

2.应用场景

  • 阅读文章时,遇到不会的单词。
  • 看美剧时,遇到新鲜的单词。
  • 突然想知道一个单词用英语怎么说。
  • 遇到一个有趣的单词想收藏下来。

3.目标用户

想要增加词汇量的普通人 && 急需通过四级大学生(@我的室友)。

4.实现思路

在小程序端提供用户交互界面。
服务器端对用户请求的词语进行查找并返回结果。
小程序端通过调用云函数实现用户的收藏功能。
在云函数将用户收藏的词语保存到数据库,增强数据的安全保护。

以下为实现收藏功能的云函数代码,由于云函数的数量有限制,这个使用一个url字段区分不同的功能,从而实现一个云函数实现多个功能。

// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext();
  const db = cloud.database();
  const  startwordCollection = db.collection('startword');
  
  //检查是否已经收藏
  if(event.url == "checkhasstart"){
    return await startwordCollection.where({
      'result.original':event.word,
       openid: wxContext.OPENID, 
    }).count();
  }

  //调用数据库取消收藏
  else if(event.url == "cancelstartword"){
    return await startwordCollection.doc(event.id).remove();
  }

  //调用数据库添加收藏
  else if(event.url == "savestartword"){
    return await startwordCollection.add({
      data:{
       result:event.result,
       openid:wxContext.OPENID, 
       time:new Date()
      }
     })
  }

   //调用数据库获取用户的收藏记录
  else if(event.url == "getstartword"){
    return await startwordCollection.where({
      openid:wxContext.OPENID, 
    }).orderBy('time', 'desc').get();
  }
  
  else {
    return {
      msg:"error!"
    }
  }

5.架构图

6.效果截图

主界面

搜索单词

查看收藏的单词

翻译功能界面

7.代码链接

https://github.com/QiuYang01/-wei-mini-programs

8.作品体验二维码

9.作者简介

某高校无业大学生

回到顶部