基于Android的图书交换系统设计方法与流程

文档序号:15799581发布日期:2018-11-02 21:20阅读:496来源:国知局

本发明属于互联网技术领域,涉及Web服务器以及Android系统,具体涉及一种基于Android的图书交换系统设计方法。



背景技术:

每当毕业季,许多毕业生都会选择将自己使用过的教材转赠低年级的同学,而低年级的同学也非常希望能够从高年级同学手中获取教材。但是缺少这样一个转赠交换的平台,使得信息交换非常的不对称,书本的转增率非常低。



技术实现要素:

本发明的目的是针对现有技术的不足,提供一种基于Android的图书交换系统设计方法,具有更加清晰的面向对象,不仅可以通过扫描ISBN号建立自己的阅读书库,还可以通过发布交换信息来实现真正的阅读交换。

本发明的具体步骤如下:

步骤1、使用sqlite建立数据库,数据库包含书籍信息表、用户注册信息表、用户借书或送书信息的附加信息表、书籍的借书或送书信息的附加信息表、书籍的借书或送书的留言信息表。书籍信息表保存书籍数据,用户注册信息表保存注册时用户的电子邮件和手机号,用户借书或送书信息的附加信息表保存用户的附加信息,书籍的借书或送书信息的附加信息表保存书籍的附加信息,书籍的借书或送书的留言信息表保存书籍的借书和送书信息。

步骤2、建立用户搜索书本时服务器和客户端的通信逻辑;

2.1:用户在安卓客户端使用摄像头扫描书本的ISBN码或是在搜索框内输入书名时,安卓客户端会使用http协议以POST的方式将用户输入的信息发送到服务器,发送内容包含获取方式和内容,获取方式的值为“书名”,则内容代表书名;获取方式的值为“ISBN”,则内容代表书本的ISBN码;

2.2:服务器对收到的数据进行解析。若解析得到的获取方式为“书名”,则从数据库的书籍信息表中获取所有该书名的书本信息,若得到的结果为空则跳到步骤2.3;同理,若解析得到的获取方式为“ISBN”,则从数据库的书籍信息表中获取该ISBN对应的书籍信息,若得到的结果为空则跳到步骤2.3。如果上述得到的结果不为空,则利用从数据库读出来的数据进行模板渲染得到一个HTML页面返回给客户端,返回码为200,其中这些数据含有其他用户的借书信息、送书信息和书籍信息表中该书籍的信息,有了这些数据用户就可以和其他用户联系和进一步交流;

2.3:若步骤2.2从数据库得到的结果为空,那么服务器返回404表示没有找到该书籍。接着,安卓客户端会以GET形式向豆瓣获取该书籍的所有信息;安卓客户端将获取到的该书籍信息发送给服务器,服务器将这些数据存储到数据库,最后服务器使用数据渲染模板返回HTML页面给安卓客户端,以便用户下次直接在数据库搜索;

步骤3、建立借书送书页面逻辑;借书送书页面包括借书信息按钮、送书信息按钮、借书或送书信息区、留言框和发送按钮。当用户点击借书信息按钮时借书或送书信息区显示借书信息,此时要是用户在留言框内输入信息然后点击发送按钮,那么服务器就会在数据库中记录下借书信息以及用户信息。同理,当用户点击送书信息按钮时借书或送书信息区显示送书信息,此时要是用户在留言框内输入信息然后点击发送按钮,那么服务器就会在数据库中记录下送书信息以及用户信息。有了这些借书、送书以及用户信息后,用户再次搜索该书时,借书送书页面上就能一目了然显示这些信息。

步骤4、使用Flask和bootstrap框架搭建论坛。论坛使用SQL数据库存放数据,一共使用了三张表,分别是用户、主题和回复,其中用户的ID和回复的ID作为主题的外键,用户的ID和主题的ID是回复的外键,这样三张表就被相互联系起来:通过用户的ID可以找到该用户发送的主题和回复,通过主题可以找到创建者的ID和该主题的回复。

论坛页面包括主页和主题详情。主页显示登录信息和主题列表。主题详情页面显示其他用户的回复,并且可以发布回复。

本发明具有的有益效果:

第一、为用户提供了一个书本交换的平台,特别是针对学生用户。用户可以在搜索到的书本下面留下求借或者出借的信息,这样根据注册时提供的学校信息,可以非常方便地在校园内完成书本的交换。另外,本发明包含一个交换的论坛,每一个用户都可以在论坛在通过发帖的方式发布求借书本或者出借书本的信息,使得书本的交换可以不再受到校园的限制,也使得双方的信息能够公开。

第二、提供给用户一个图书查询的功能,用户可以通过书名,作者名等关键词的搜索,或者书本ISBN号的扫描在数据库中查询到图书的相关信息,包括封面,作者,出版社,简介,目录等。用户可以将这本书收藏到自己的清单下。

第三、可进行美文推送,将图书排行靠前的书本列出,有利于用户阅读。同时根据用户的搜索和发布的借阅进行分析,给用户推荐他们可能喜欢的书籍。

第四、使我们手中的图书特别是教材充分的流通起来,使得学生或是喜欢读书的人可以在这个平台上完成图书求借、转赠的目的。通过这个平台完成书本的交换,可以实现资源的互补,节约书本资源,绿色环保。

附图说明

图1为本发明的原理框图;

图2为本发明的借书送书页面。

具体实施方式

下面结合附图对本发明作进一步说明。

基于Android的图书交换系统设计方法,具体步骤如下:

步骤1、使用sqlite建立数据库,数据库包含书籍信息表、用户注册信息表、用户借书或送书信息的附加信息表、书籍的借书或送书信息的附加信息表、书籍的借书或送书的留言信息表。

书籍信息表:当用户通过扫描ISBN码或输入书名时,安卓客户端首先向服务器发起请求,若服务器未查询到该书籍信息,则返回400;安卓客户端收到400的返回码则向豆瓣请求该ISBN码或是书名对应的书籍数据,获取到json格式的数据后将数据发送到服务器,然后服务器将数据保存在书籍信息表中。

用户注册信息表:以便以后书籍交换时或是在论坛内留言时留下个人信息,这样其他用户再次搜索该书籍时就能看见送书或是借书人的信息并与其取得联系。注册的时候用户提交了电子邮件和手机号。

用户借书或送书信息的附加信息表:有了这些附加信息可以更快的检索到留言信息。

书籍的借书或送书信息的附加信息表:有了这些附加信息可以更快的检索到留言信息。

书籍的借书或送书的留言信息表:当某个用户搜索一本书籍时,该书籍的借书和送书信息会一并显示,这样用户可以根据自己的需要选择看借书或是送书信息。

步骤2、如图1所示,建立用户搜索书本时服务器和客户端的通信逻辑;

2.1:用户在安卓客户端使用摄像头扫描书本的ISBN码或是在搜索框内输入书名,接着安卓客户端使用http协议以POST的方式将用户输入的信息发送到服务器。发送内容包含如下字段:获取方式(可能的值为“书名”或“ISBN”),内容(若获取方式为“书名”,那么内容代表书名;若获取方式为“ISBN”,内容代表书本的ISBN);

2.2:服务器对收到的数据进行解析。若解析得到的获取方式为“书名”,则从数据库的书籍信息表中获取所有该书名的书本信息,若得到的结果为空则跳到步骤2.3;同理,若解析得到的获取方式为“ISBN”,则从数据库的书籍信息表中获取该ISBN对应的书籍信息,若得到的结果为空则跳到步骤2.3。如果上述得到的结果不为空,则利用从数据库读出来的数据进行模板渲染得到一个HTML页面返回给客户端,返回码为200,其中这些数据含有其他用户的借书信息、送书信息和书籍信息表中该书籍的信息,有了这些数据用户就可以和其他用户联系和进一步交流;

2.3:若步骤2.2从数据库得到的结果为空,那么服务器返回404表示没有找到该书籍。接着,安卓客户端会以GET形式向豆瓣获取该书籍的所有信息;安卓客户端将获取到的该书籍信息发送给服务器,服务器将这些数据存储到数据库,最后服务器使用数据渲染模板返回HTML页面给安卓客户端,以便用户下次直接在数据库搜索,加快搜索速度;

步骤3、如图2,建立借书送书页面逻辑;

当用户搜索某本书后就会显示如图2的借书送书页面,借书送书页面包括借书信息按钮、送书信息按钮、借书或送书信息区、留言框和发送按钮。当用户点击借书信息按钮时借书或送书信息区显示借书信息,此时要是用户在留言框内输入信息然后点击发送按钮,那么服务器就会在数据库中记录下借书信息以及用户信息。同理,当用户点击送书信息按钮时借书或送书信息区显示送书信息,此时要是用户在留言框内输入信息然后点击发送按钮,那么服务器就会在数据库中记录下送书信息以及用户信息。有了这些借书、送书以及用户信息后,用户再次搜索该书时,借书送书页面上就能一目了然显示这些信息。

步骤4、搭建论坛;

为了给用户提供更多的交流机会,使用Flask和bootstrap框架搭建论坛。Flask是python下的一个Web框架,具有结构小巧,易于扩展的特点。bootstrap是Twitter的一个开源前端框架,利用它可以快速搭建响应式网页,自动适配各个平台。论坛使用SQL数据库存放数据,一共使用了三张表,分别是用户、主题和回复,其中用户的ID和回复的ID作为主题的外键,用户的ID和主题的ID是回复的外键,这样三张表就被相互联系起来:通过用户的ID可以找到该用户发送的主题和回复,通过主题可以找到创建者的ID和该主题的回复。

该论坛页面包括主页和主题详情。主页显示登录信息和主题列表。主题详情页面显示其他用户的回复,并且可以发布回复。

本发明采用安卓与Web混合编写。服务器框架选取Flask,它负责用户数据的处理与存储以及给用户返回网页或是请求数据。数据库选择sqlite,这是一款轻量级数据库,使用小巧、方便,在数据搜索和存储的效率方面也非常高。服务器端开发采用Python,Python开发效率高,能够方便地处理客户端的请求。服务器端为每个请求编写一个URL处理接口,当接收到一个请求,Flask自动把该请求分配到该对应的URL下进行处理。Flask中的Jinja2模块对html模板进行渲染,可以达到返回动态页面的目的。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1