我在大学做的四个项目

我在大学里根据自己所学到的知识,目前为止一共做了四个项目,其中有的是自娱自乐,有的是参加实验比赛,有的是完成作业。但是每个项目都是我发自内心的想去做,对我来说都是有意义的。

一.o2o在线售卖平台

o2o在线售卖平台Github地址

o2o在线售卖平台是一个Java Web项目,基于SSM框架开发,其主要功能就是提供给校园里的一些商铺在网上展示的机会,用户在网上看到后查看商品详情到线下消费,商家的打折活动也可以在网上展示出来,这样有利于提高商铺的知名度。整个网站套用了前端模板SUI Mobile ,简化了前端开发流程。项目分别提供了前台展示和后台管理功能分别提供给用户和商家使用。这个项目是我和几个小伙伴们一起开发的,我负责商品类别模块、店铺编辑模块、工具类模块的代码编写,后期听说了NoSQL技术,于是还用Redis进行了小小的优化。

前台展示

后台管理

做到一月份的时候因为准备考试大家就将项目暂时搁置了,我的工作基本也就做完了,整个项目的完成度其实并不是很高,只完成了最基本的功能,界面设计也不咋地,只不过这个项目的主要目的是锻炼大家的技术,准备下学期再做一个功能完整的Web项目。

二.简记

简记Github地址

简记是我准备比赛的一个项目,于是便决定做一个APP来完成这个项目。简记的立意来源是这样的,当时喜欢和朋友们去附近各个景点玩,一玩就是一两天,费用又都是AA制的,玩完回来后要算账很麻烦,还要相互之间传照片就更麻烦了。针对这个痛点我就萌生了做个APP来解决的想法,也就是简记。

当时我没有任何做APP的经验,甚至学编程也才一年。在询问老师和学长具体的开发步骤和需要的技术栈后,我就开始了边学边做之路。从Android开始学起,然后到数据库SQLite。写需求分析文档也是必不可少的,从老师口中知道了文档的撰写对于软件开发流程的规范也是很重要的。我在对用户场景的具体分析后画出了APP的功能流程图。

APP流程图

本来做完第一版APP的时候是没想做好友之间互传账单这些后台功能的,但是又突然心血来潮想去做个服务器把这个功能完成了。于是又去翻资料,知道了用Python做最简单,挑了个Flask框架很快就把服务器代码写好了。然后又有一个难题就是本机上部署服务器倒是做好了,但是我不能一直开着我的电脑当作服务器啊。于是我又了解到有个东西叫做云服务器,于是我又上网学到了云服务器远程部署,把服务器部署到了阿里云上。

写代码的过程中有一个东西挺搞笑的,就是我当时还不知道什么叫做多线程,我在做上传照片功能测试的时候发现上传地太慢了,10几张照片本地压缩然后上传完成要花一分多种,我觉得不至于啊,然后我才知道还有一个东西叫做多线程……一股脑学完多线程,把代码改成多线程上传后,时间从一分多钟下降到十几秒,还算可以接受了。我在多次测试上传功能又发现问题了,我写的代码是用一个count变量记录要上传的照片总数,当一个线程上传照片完成后,就将count-1,最后所有线程完成后count=0,通知主线程弹出dialog告知用户照片上传完毕。我就发现有些时候照片上传十几分钟都不弹出dialog通知我上传完毕,而照片又确确实实上传完了。最重要的是这个bug还不是每次都会出现,只是偶尔出现,当时简直把我整崩溃了,调了好几天都没改好这个bug。直到后来看完Java虚拟机后我才知道,原来count要加一个volatile关键字,这真的说明基础不牢地动山摇啊。

最后APP完成效果如下:

用户注册

可惜的是阿里云服务器到期后,我也就没有继续部署服务器了。

三.卡片天气

卡片天气Github地址

卡片天气是我学年综合实践的作品,这个APP主要集成了聚合天气的API和百度地图的定位API,能够自动定位用户所在地的七日内的天气。

这个APP在酷安上目前为止有1.6k的下载量。

四.记忆架

记忆架Github地址

记忆架的起源是这样的,老早我就看到了豆瓣公布了它的API。豆瓣API地址 ,于是我就一直想用这个API搞点事情。我很喜欢看电影和看书,而在参考是否看一部电影或书籍之前我都会先做调研看看这电影或书是否好看,而对于我来说是否好看的重要指标就是它的豆瓣评分。而看完后我还想收藏我看过的所有书籍和电影,并对收藏的数据进行分析总结。这些就是记忆架的功能。这个项目是我和一个小伙伴一起开发的,我负责界面设计,以及书籍电影等的模块开发,他负责所有数据的整合统计。

总结

做项目每次写代码都会写到高兴时得几乎感觉不到时间的流逝,真正运用了我所学的所有编程知识,提高了我的自学能力,并且体会到了开发的乐趣,