我正在参加「创意开发 投稿大赛」详情请看:掘金创意开发大赛来了!
一、背景
作为一名北漂的码农,租房和买书曾是我生活中两件很重要的花钱事。毕业后没几年就搬了三四次家,也积攒了不少的书。每每搬家时,看着那一大箱子书就不免让人头疼。卖掉吧,不值钱还心生可惜,不卖吧搬起来可是真费劲。后来我就想,能不能把看过的书都散出去,像漂流书一样,让它们自己寻找新的主人。
二、需求分析
一番了解后我发现,漂流书是个很古老的玩法,可惜一直也没流行起来,总结分析之后我认为,漂流书有几个弊端:①容易遗失损毁,②传阅范围不可控,③无法预约,④无法追踪。
本质上,把闲置书籍散出去的想法,其实就是一种共享经济(共享纸质书)。考虑到电子书的盛行和大家购买力的增长,纸质书共享注定是一个小众的需求。因此想做这样一个应用,其目标人群一定是特定的细分领域,典型的场景如:①社区少儿图书共享,②校园读书会,③企业图书馆,④线下书吧。
经过调研分析后,我想可以开发一个应用来重新定义漂流书(下文称新漂流书),主要服务于有纸质书共享需求的小众人群。其应当解决传统漂流书的弊端,并方便特定人群实现图书共享,主要功能有:①书籍信息录入,②查看书籍信息,③预定及借阅,④查看传阅记录。
三、创意概述
为了尽可能简化和方便用户的使用,新漂流书的客户端以微信小程序方式实现,书籍的录入、预约和借阅都通过扫一扫书后条码的方式完成。总结起来,基于微信小程序的新漂流书有如下几个特色:
1. 通过扫一扫书后条码,即可完成书籍信息的录入。
2. 基于微信群,可限定漂流书的传阅范围(仅群内用户可见、可借阅)。
3. 可实现查看漂流书的传阅路径(由谁发布,又都经由谁借给了谁,当前谁持有)。
4. 省去存放图书所需设施和空间(所有漂流书都散落于用户手中,无需再有物理的图书馆)。
四、设计思路
总的来说,这是一个相对简单的应用,如果你是一个熟练的程序员,可能根本不需要多少设计就可以开始编码实现了。但为了完整介绍本创意,下面还是通过概念、原型和技术方案三个设计做一步描述。
1 概念设计
概念设计的目标是,从概念上为要实现的系统建立一个模型,可称之为概念模型。概念模型是系统的设计草图或设计大纲,其设计要确保概念完整性。(有关概念模型和概念完整性的更多介绍可参见《aPaaS设计思考》和《关于概念及概念完整性的思考》)
新漂流书小程序的概念设计,可以用UML用例图来表示如下。
上述用例图涉及几个关键概念,定义如下:
- 发布:指用户将自己手头闲置书籍录入到系统中,供其他用户借阅。
- 预约:指用户对他人持有的漂流书发起借阅申请,持书人可依据预约先后顺序出借。
- 交接:指当前持书人将书籍交给借阅者,双方需扫码确认后,系统将自动变更持书人。
2 原型设计
限于篇幅,这里只给出新漂流书小程序主要功能界面的原型。
3 实现方案
实现方案一般应包含系统架构、功能模块、数据存储等设计内容,通常会采用图文结合方式描述。鉴于本创意比较简单,这里仅做简要文字描述。
- 架构设计:有两种方案,1是基于微信小程序云开发的架构实现,2是自建后端服务的架构方案。区别是1相对更简单,用JavaScript可以搞定前后端所有代码,同时云开发简化了用户身份校验等处理;方案2的优势是实现上比较灵活,可使用java、golang、c#等不同技术栈实现。
- 功能模块:根据前述用例图和原型,功能模块可划分为漂流书、书架、用户、预约、交接等模块。前端代码可采用MVVM模型实现,后端代码采用MVC或DDD模型实现。
- 数据存储:主要的实体对象表有①用户表、②书籍表、③群书架表,实体关系表有④书架用户表、⑤书架书籍表、⑥预约表、⑦交接表等。
五、结语
以上就是我对漂流书小程序创意的全部描述。此前我在微信中也搜索了类似小程序,整体上现存的此类小程序可分为二手书买卖和传统图书管理系统两类,像本文所述的P2P(Person to Person)的共享式漂流书小程序还是比较罕见的。期待感兴趣的朋友交流分享,如果此创意对你有所启发也希望能反馈于我,谢谢!