文章目录
-
- 一、项目简介
-
- 1. 概述
- 2. 意义
- 3. 软件卖点
- 4. 软件创新点
- 5. 主要功能
- 二、项目架构
-
- 1. 登录注册模块
- 2. 首页设计模块
- 3. 图书管理模块
- 4. 用户管理模块
- 5. 订单管理模块
- 三、项目关键设计
-
- 1. 数据库设计
- 2. 关键功能及代码
- 四、效果图
-
- 1. 登录注册
- 2. MainActivity
- 3. 其他界面
- 五、项目源码
一、项目简介
1. 概述
OBT(old book trade)深大旧书交易平台,是专门为深大学生量身定制的二手教科书、二手课外书等书籍的交换平台。同学们用过的教科书、课外书都可以用在本平台上换成需要的教科书或者课外书。旧书交易系统是为师生服务的公益平台项目,旨在实现书籍回收利用、促进学习交流、节省学生开销等宗旨。目前OBT已经完成安卓手机端的开发,未来将对第一版本进行完善,并择机开发ios版本和鸿蒙版本。
2. 意义
OBT旧书交易系统是一个专门为深大学生量身定做的二手书交易平台,其意义总结有以下几点:
1) 实现校内图书的回收利用,为绿色环保、开源节支贡献自己的一己之力;
2) 促进同学之间的交流与联系,切实解决卖书难、买书难的问题。
3) 不经过第三方商家,实现没有中间商赚差价,真正实现压低图书价格,平常在其他旧书店20块钱才买得到的书,在OBT上只需10元就能买到;
4) 探索使用Q点结算,不涉及金钱交易,真正实现图书互换。
经过我们前期的市场调研,目前深大大概有66.3%以上的学生有意愿购入和使用二手书,而他们迫于当前二手书交易的局限,只能从校外的旧书店用较高的价格购买。而OBT的推出,将有望于改变这一现状,实现每年5000册图书的交换,惠及深大3万多人。同时也将助力绿色环境建设,帮助贫困学生以较低价格获得心仪图书。
3. 软件卖点
A.避免资源浪费
很多同学的教材使用完之后,多数选择扔掉或者放着不用,这会造成极大的资源浪费。如果提供OBT这样一个平台,就能让资源循环利用。既能环保,又可以节省同学们的日常开支。
B.使用数据库驱动
鉴于教材的多种多样,我们根据深大的课程体系,按照年级、专业进行分类,并为每一本书贴上标签,分好编 ,使得OBT平台更好地为深大学子服务。
C.不止于购书
OBT平台将提供论坛专区,用于同学们在上面分享读书笔记,看书心得,或者是分享考试复习资料,探讨学习问题等,将会是一个校内的专属学习论坛。
4. 软件创新点
A.交易方式不同
与传统交易平台不同,OBT将采用类似于“物物交换”的交易模式,所有交易不涉及金钱,“卖”出去的书籍将根据定价和新旧程度获得一定数量的Q点,后续可以使用Q点“购入”自己需要的书籍。
B.为深大学子量身定做
将二手书在校内流传,一是避免了中间商赚差价,二是由于课程体系和教师差异不大,教材上的笔记等内容都能很好地被再利用。所购入的二手书也更加适合自己。
C.提供互评机制
与现行单方面的评价不同,OBT平台买卖双方都可对对方做出评价,评价包括打分和文字评论(可配上图片),系统将根据评价生成个人信用分,此外,当进行交易的时候,同学们可以根据评价选择适宜的买方或者卖方。
5. 主要功能
A. 非常细节地复现目前主流App的登录注册功能,带有正则表达式判断、随机图片验证码、以及手机验证码等功能。
B. 模拟淘宝、京东首页设计,具备“轮播广告位”,可以引入广告获取收益,从而维系平台的维护,并且利用优质广告丰富同学们的生活。
C. 和现有平台不同,OBT实现买卖一体化,只需要下载一个App就可以完成买、卖、售后相关操作,操作方便,节约手机内存。
D. 和现有平台不同,OBT不涉及金钱交易,单纯地使用Q点作为物与物交换的媒介,所有交易使用Q点进行结算,能够模拟实现书籍交换的机制。
E. 图书管理方面:实现基本的增删查改、以及根据特定条件、复合条件排序。有购物车功能。
F. 用户管理方面:用户可以上传头像、修改更新个人资料,多用户时还可以实现自由的添加、删除、切换等。
G. 订单管理方面:包含未支付、已支付、待收货、确认收货、评价等阶段属性。并根据图书卖家和买家对这些订单进行标标识,从数据库读取时采用嵌套查询的方式。
二、项目架构
本项目共包含五大模块:登录注册模块、首页设计模块、图书管理模块、用户管理模块、订单管理模块,每个模块之间的简单关系如图所示,整个项目的流程请参见中期 告。接下来,我们将逐一对每个模块的内容和功能进行详细的介绍。
2. 首页设计模块
(1)包含的活动和功能
首页设计模块主要包括两个活动:HomeFm(首页模块)和SearchActivity(搜索活动)。其中每个活动包含的功能如表3所示。
4. 用户管理模块
(1)包含的活动和功能
用户管理模块主要涉及MineFm、LoginActivity、RegisterActivity和ForgetPassWordActivity四个活动。其中每个活动对应的功能如表7所示。
A. 由于手机 、密码、学 这些不需要参与任何的运算,知识一串数字,因此采用varchar存储,这样可以有多少位就存多少位,节省空间。
B. 对于用户头像IMAGE,在java中,我们需要将一张图片先转为bitmap编码,然后再转为byte数组,然后转成String类型,最后使用blob存储。这里不用text,是因为其空间大小不足。
C. 将账 密码和账 信息分开存放,是为了安全起见,因为后面会有很多环节需要访问信息表,如果密码也放在信息里面,就很容易造成信息泄露。
D. 记住密码功能,是将密码保存到手机数据库中(使用SQLite),然后进入登录界面的时候自动填充。
(2)首页设计模块
这个模块主要涉及book表,从book里面选出相应的推荐书籍展示出来,然后点击购买或者加购操作会跳到其他对应的模块进行完成。
A. 关于订单状态的说明:为了更节省空间地表示其状态,这里使用int型,我们规定-1表示未支付状态、1表示已支付未发货状态,2表示已发货未收货状态,3表示已收货状态,4表示订单完成(即卖方收到Q点)。
B. 其余的表在之前也相应介绍过,这里不再重复。注意,这里为了方便,使用账户登录密码作为支付密码。
C. 在用户和订单因为是1对多的关系,所以我们需要将用户的主码(手机 码)作为订单的外码。其余情况也类似。
(4)用户管理模块
这个模块主要涉及用户的一些信息,以及手机自身的SQLite数据库相关表(不同于mysql,不能多台手机共享),其中主要包括user表、userInfo表、userlist表(SQLite)。他们之间存在一些关系,比如user和userInfo是一一对应的,把密码分开其实是为了账 的安全,因为我们在使用app的过程中会经常性的访问数据表,如果密码放在一起,就很有可能会泄露。然后userlist和user是一对多的关系,userlist存放着添加在手机中的用户列表(包括密码),当用户切换时,可以自动取出账 密码去mysql数据库匹配。其数据表和ER图(只画出表之间的关系)如图所示。
A. 为了节省空间,我们使用一个int型数据来记录不同的订单状态,比如使用0表示订单处于刚创建为付款状态,使用1表示订单已付款为发货状态,使用2表示订单已发货未收货状态,以此类推。
B. 另外,在每次订单创建的同时,我们要更新book,将图书设置为已售出,避免重复出售的情况。
2. 关键功能及代码
(1) 连接mysql
因为我们每次使用jdbc连接,都需要创建一个连接器,所以我们这里干脆将其写成一个Helper类,并且在里面放着我们的ip地址和密码,以及数据库的相关信息。
2. MainActivity
3. 其他界面

五、项目源码
完整代码请参加GitHub: https://github.com/JacksonKim-1024/Old-Book-Trade-OBT-
文章知识点与官方知识档案匹配,可进一步学习相关知识MySQL入门技能树使用数据库 创建和删除数据库32792 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!