最初想做铛铛打卡是因为,软件工程课程有个大作业要求几个人组一个小组!要求按照完整的软件开发流程来做一款软件,老师考虑到一部分同学的编程能力说可以不编码,只画图写文档也可以。但是这种可以展(zhuang)示(bi)的机会能错过吗?当然不能。所以我拉着我正在学JS的下铺,跟我组队,又捎带着一个打酱油求过的室友开始了我第一款产品的开发之路。

想了好久都没找到没有好的项目,正好手头有一个自己写的用来实验室同学打卡签到的web应用。因为没有前端写的很难看,不过能用。既然现在“骗来“了一个前端何尝不把我这个软件重新写一遍呢!

项目初期

之前我是用于实验室学生打卡,使用范围较小,功能也很少!既然我们团队扩大了,怎么得也得确定个高大上的需求吧!以我最初的作品为蓝本,为了制定更加贴合实际需求的产品功能我将用户锁定在了校园中的学生。其实在确定了这个项目之后,我在网上搜了下打卡类的产品发现也已经“烂大街”了。

所以为了突出我们产品的创新性(好难!只后悔自己生的太晚),打卡功能分为两类!一是普通类:创建一个目标,每个人都可以参加,也可设置成只允许个人使用等。这是社交性质的一类。另一种是考勤类:发起人设置好一些参数,如地点、时间等,通过二维码或者超链接的形式发布(主要是针对老师点名太慢,浪费时间。这样老师可以上课前将手机的二维码投到大屏幕上课前签到,课后签退!其实厉害的老师从来不需要点名的… …

需求分析

1、 调用微信登陆接口或者自行注册账号登陆

调用微信接口,自动获取用户头像和昵称等公开信息,以达到快速登陆、快速打卡或快速创建的目的。如不想使用微信登陆,也可自己注册账号。(账号即为用户ID,一经注册不可更改。

2、 调用高德地图接口获取位置信息

对于高级模式的打卡活动,定位偏向于考勤性质。即会强制进行定位,并使用高德地图的接口获取用户位置,达到防止打卡作弊的目的。

3、 搜索并加入兴趣圈

对于一些设置为开放的兴趣圈,每个人都可搜到并可以加入,进行打卡。

4、 创建打卡兴趣圈

用户对于已有的兴趣圈不满意,可以自己进行创建(简单模式),设置兴趣圈基本信息。然后邀请朋友等人加入。

5、 发表动态完成打卡

对已参加的常规性兴趣(活动),进行打卡。可以发表说说等内容。

6、 关注其他人

对感兴趣的用户进行关注,可以浏览其主页,查看用户公开的兴趣圈子(活动)。

7、 对别人的打卡记录点赞评论

在首页显示好评最多的用户记录,用户即可对其他用户的记录进行评价和点赞。

8、 查看互相关注用户动态

当两个人成为互为关注的用户时,即可查看对方的打卡动态。

9、 创建打卡签到活动

即此打卡签到活动为高级模式,限制条件较多,比如位置、时间、时效等。

10、生成活动签到二维码

将自己创建好的考勤活动生成二维码,方便其他人打卡。

11、用户通过微信扫一扫打卡

对于其他人发布的二维码,使用微信扫一扫再通过微信登录接口登陆,使整个流程更加便捷。

12、私信功能

用户之间,可以相互发送私信。也可以设置不接受陌生人私信。

13、数据统计

根据全部的打卡数据,自动生成各种图表信息,可供用户参考。

数据库设计

图1-数据库总览

图2-打卡记录表 dangdang_record_list

图3-目标信息表 dangdang_target_info

图4-用户信息表 dangdang_user_info

图5-用户与目标关系表 dangdang_user_target

编码

大概功能确定了之后,设计完数据库(仅仅只有四张表… …所以是个半成品)我们就准备动手了!当时也没来的及考虑写文档,画用例图、类图各种图了。因为现在不仅仅是我自己写代码,所以面临着用什么样的方式开发与和前端沟通的问题(之前的版本我是直接在前端页面写PHP代码)。我俩讨论之后,决定采用前后端分离的方式来编写。前端通过ajax 异步请求数据。这样我的只写后台的话任务就特别轻松了(后来我自己当“全栈”开发我的资源分享网站www.qingning99.cn时深有感触,前端ajax异步真难调,不过掉到一个一个的坑之后也学到了很多东西)。我只负责编写后台的逻辑代码,写写sql语句(由于没学框架,全部手动写的回滚… …)。这样前端用的 bootstrap 和 JQuery框架,他写好页面后,会告诉我,向后台发起请求的数据格式、参数等和要求返回的数据。我会将处理后的各种状态和数据返回给他。我第一次感觉到,前后端分离就是轻松啊!对了,为了较快的完成开发,我用PHP写的后台。

我们为了可以尽快的使项目上线,就先开发了简单模式及其配套功能(创建目标、搜索目标、个人主页等)。

项目部分页面展示

首页展示

登陆成功后,首页会显示20条所有目标(public)中点赞数最多的打卡记录(按点赞数排列)。

图6-首页

我的目标

点击【我的目标】之后会显示用户已经参加的全部活动。每条记录上会显示打卡的总次数和是否已经打卡。已打卡的按钮不可再点击,点击活动名称后可以查看相关信息。

图6-我的目标

搜索目标

如果想参加一个其他人的目标可以点击【搜索兴趣】进行搜索。

图7-搜索目标

我的主页

展示一些相关信息,背景、头像、个性签名和一些操作等。

图8-我的主页

我的动态

可以查看自己所有的打卡动态。

图9-我的动态

修改信息

可以修改个人信息。

图10-修改信息

定位功能模块

后期由于简单模式没有强制要求定位,即功能也没有加上去,但是已经做出来了。

图11-定位功能模块

项目部分功能展示

打卡操作

在【我的目标】页面进行打卡操作。

图12-打卡操作

创建目标

搜索目标后,发现没有符合自己要求的目标后可以进行创建。

图13-创建目标

加入目标并打卡

搜索目标后点击加入并进行打卡。

图14-加入目标并打卡

查看目标信息并退出

可以查看所有参加此活动用户的打卡动态及活动的相关信息并退出活动。

图15-查看目标信息并退出

查看打卡记录

查看自己所有的打卡动态

图16-查看打卡记录

更新目标信息

更新目标信息,将私有活动改为公开的。

图17-更新目标信息

更新个人信息

更改个性签名和邮箱

图18-更新个人信息

小结

遗憾的是,由于一些原因项目没有开发完就结课了!最后展示了一下效果图,并且将各种图都补画完。第一款产品就成为了个半成品,心痛… …

我的第一款(ban)产(cheng)品(pin)——铛铛打卡相关推荐

  1. 木木夕推荐:第一款产品《美柚》

    木木夕推荐:第一款产品<美柚> 美柚:专注为女性服务的App; 域名:https://www.meiyou.com/ 开发者:厦门美柚信息科技有限公司,创始于2013年4月,是一家专注为女 ...

  2. 台积电要造第一款7nm芯片 明年下半年可投产

    台积电在近日宣布将与Xilinx.ARM.Cadence Design Systems联手打造全球第一款7nm工艺的新品,他们要做的是一款CCIX(Cache Coherent Interconnec ...

  3. 痞子衡嵌入式:ARM Cortex-M内核那些事(2)- 第一款微控制器

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是第一款Cortex-M微控制器. 1.天生荣耀:ARM Cortex-M处理器由来 ARM公司自2004年推出ARMv7内核架构时,摒弃 ...

  4. 安装i3_330mm长显卡,240水冷,我的第一款小钢炮,雷匠R-i3装机体验

    我以前装机,不管是自己装,还是帮别人装,都喜欢推荐ATX大机箱,这样未来的扩展升级都会比较方便,但是9成的用户到最后其实都不会再去折腾机箱内的配件.近年来,小机箱越来越受欢迎,各种ITX机箱,A4机箱 ...

  5. 想买车的注意啦!一针见血,点评100多款在产汽车

    想买车的注意啦!!!!!一针见血,点评100多款在产汽车来源: 刘志伟的日志 大众系列:      上汽大众:依靠桑塔纳赚了很多钱,但是这是他们应得的报酬,不要忘记,改革开放后我国与其他品牌谈合资时, ...

  6. 科技新品 | 飞利浦新型便携式投影仪;Amazfit三款全新智能手表;SK海力士业界第一款HBM3 DRAM...

    "科技新产品动态"栏目把新鲜的具有代表性的科学产品带到您眼前,涉及消费电子,半导体.服务器.智能家电等众多品类,提供图片和简单的文字介绍. 飞利浦推出两款新型便携式投影仪:卡西欧宣 ...

  7. 阴阳师IP第一款衍生产品,上线三年又做了一次大胆升级

    2018年1月,网易推出了"阴阳师"IP的第一款手游<决战!平安京>(以下简称paj),作为当时处于全盛时期的<王者荣耀>的竞品,这款游戏的市场表现并不尽如 ...

  8. 2021.12.29国内第一家量产蓝牙AOA高精度定位基站设备原厂深圳核芯物联荣获第二十三届高交会双项大奖

    2021.12.29国内第一家量产蓝牙AOA高精度定位基站设备原厂深圳核芯物联荣获第二十三届高交会双项大奖 2021年12月29日,核芯物联参展第二十三届中国国际高新技术成果交易会.凭借在蓝牙AOA基 ...

  9. Python制作当年第一款手机游戏-贪吃蛇游戏(练习)

    前言: 文章利用Python pygame做一个贪吃蛇的小游戏而且讲清楚每一段代码是用来干嘛的. 据说是贪吃蛇游戏是1976年,Gremlin公司推出的经典街机游戏,那我们今天用Python制作的这个 ...

最新文章

  1. VC界面库BCGControlBar和Xtreme Toolkit详细对比评测
  2. Yii 框架学习--03 多应用多模块
  3. 4、以太网基础知识——ICMP协议详解
  4. 按钮的android程序闪退,Android实例化控件有什么特殊要求吗??怎么程序加了这一段之后就闪退。。...
  5. 210221阶段三线程、信号量、互斥锁
  6. MODIS NDVI数据处理相关问题
  7. 一个路径下挂载(匹配)多个子组件
  8. Linux常用命令—文件处理命令—文件处理命令
  9. Sysprep命令详解
  10. leetcode 【 Add Two Numbers 】 python 实现
  11. 在JavaScript中实现命名空间
  12. session放入缓存(redis)、DB
  13. python在线编辑菜鸟-python菜鸟工具
  14. 中国工程院院士倪光南:大数据产业安全和发展需同步
  15. Same Parity Summands
  16. Spring Cloud Gateway编码实现任意地址跳转
  17. 一个古典App开发者的DApp开发之路
  18. 【排列组合】扑克牌大小王被同一人拿到概率
  19. 微软宣布Windows更新计划,Win10将在2025年停止服务支持
  20. Visual C++实现黑白棋游戏项目实战二:界面的设计与实现(附源码和资源 超详细)

热门文章

  1. HC32l130单片机的delay函数怎么写
  2. Qt+mpv制作windows/linux 下的动态壁纸软件(含源码)
  3. 流体渐变_最新的10种Fluid Colors流体渐变壁纸制作方法
  4. 凸优化、轨迹优化、最优控制
  5. C#中Dev配色修改
  6. android设置自动亮度,Android亮度调节的几种实现方法
  7. r语言做绘制精美pcoa图_R语言进行PCoA分析
  8. 单元测试用例 php,PHP 单元测试(PHPUnit)(2)
  9. 【visual studio】visual studio 2022 无法 复制黏贴
  10. 矫正ubuntu系统时间