基于Android和PHP图片分享系统(二):软件需求说明书(部分欠缺)

来源:互联网 发布:双色球计算法27种 编辑:程序博客网 时间:2024/06/05 02:53

1.  系统需求

本系统主要满足用户将拍摄的照片或收集的图片分享出来,供其它人浏览、下载;具有一定的商业价值。系统分为服务器端和Android客户端两部分。

1.1. 功能分析

系统主要用户分为:匿名用户和注册用户,匿名用户通过注册可以成为注册用户。其中匿名用户的主要功能为:浏览图片、搜索图片、注册;注册用户的主要功能为:登录功能、管理图片分类(添加、修改和删除类别)、管理图片(添加、修改和删除图片)、修改个人信息等。主要功能描述如下:

(1)浏览图片功能:匿名用户可以按图片分类对图片进行筛选,在筛选出的图片(缩略图)列表中,点击某一张图片,可以查看该图片的详情(原图和详细说明);也可以按图片所有者对图片进行筛选。

(2)搜索图片功能:匿名用户可以选择搜索图片的范围(按图片类别、按图片所有者),然后输入关键字进行搜索,搜索的结果以缩略图的形式显示列表,点击后可以查看图片详情(原图和描述)。

(3)注册功能:匿名用户填写自己的电话号码、昵称、密码和头像进行注册,成功后即成为注册用户。

(4)登录功能:用户可以填写昵称或电话号码、密码进行登录,登录成功后可以进行类别管理、图片管理、修改个人信息等功能。

(5)分类管理功能:注册用户登录后,可以添加、修改和删除类别,如果删除的类别下存在有图片,则将图片移动到系统的默认类别。分类可以实现多级(至多三级)。

(6)图片管理功能:注册用户登录后,可以添加图片、修改图片和删除图片,在添加和修改图片时,需要指定图片所属的分类。也可以改变图片所属的分类。

(7)修改个人信息功能:注册用户登录后,可以修改登录密码、可以修改头像信息。

1.2. 业务流程

系统主要的业务流程为:注册用户登录系统后,点击上传图片按钮,选择本地图片,填写图片标题、描述、关键字等信息,并选择分类,如果没有存在的分类或要添加新的分类,则跳转到添加分类界面添加分类,确定后上传图片保存;匿名用选择分类或者选择所有者,则显示符合条件的图片的缩略图列表,点击其中一个缩略图,则显示该图片的详细信息。整个业务流程图如下:

1.3. 需求模型

系统角色(参与者)主要为:匿名用户和注册用户,他们使用的系统功能用用例图表示如下:

1.3.1.                                    浏览图片用例

基本流程:

1.匿名用户选择图片分类;

2.系统显示该分类的子分类及该分类的图片缩略图列表;

3.匿名用户点击缩略图;

4.系统显示图片详情。

分支流程:

1.如果用户选择所有者,则系统显示该所有者的分类,执行2-4步;

2.如果用户选择某一类别后,该类别无图片,则提示“该类别无图片”;

3.系统显示图片详情后,如果用户点击分享到朋友圈,则可分享到微信朋友圈。

1.3.2.                                    搜索图片用例

基本流程:

1.匿名用户选择按类别搜索,并输入关键字;

2.系统匹配类别关键字或图片关键字,并显示符合条件的图片缩略图列表;

3.匿名用户点击缩略图;

4.系统显示图片详情。

分支流程:

1.如果匿名用户选择按所有者搜索,则系统按图片所有者匹配图片关键字,并显示符合条件的图片缩略图列表,执行3-4步;

2.如果系统没有符合条件的图片,则提示“没有该条件的图片”。

1.3.3.                                    注册用例

基本流程:

1.匿名用户提交手机号码、昵称、密码,并选择头像等注册信息后提交;

2.系统系统检测手机号码没有注册,并显示许可协议;

3.用户阅读许可协议,并点击“同意”按钮;

4.系统存储该注册信息。

分支流程:

1.如果系统已经存在该手机号码,则提示用户“该用户已经注册”,并显示“立即登录”按钮,用户点击“立即登录”,则启动“登录用例”;

2.如果用户阅读许可协议,并点击“不同意”,则结束用例。

1.3.4.                                    登录用例

基本流程:

1.用户输入手机号码或昵称、密码后点击“登录”按钮;

2.系统验证手机号码或昵称与密码匹配,并显示用户图片数和“立即分享图片”按钮;

3.用户点击“立即分享图片”,则启动“添加图片”用例。

分支流程:

1.如果用户选择“自动登录”,则系统将登录用户信息存储在本地,下次自动登录;

2.如果手机号码或昵称与密码不匹配,则系统显示“登录账户有误,请重新输入”;如果重新输入次数超过3次,则拒绝该用户当日继续登录;

3.如果用户没有点击“立即分享图片”,而是点击“取消”,则系统显示主界面,结束用例。

1.3.5.                                    管理分类用例


1.3.6.                                    管理图片用例


1.3.7.                                    修改个人信息用例


2.  系统设计

2.1. 界面设计

2.1.1.                                    用户登录界面

2.1.2.                                    用户注册界面

2.1.3.                                    主界面

2.1.4.                                    缩略图列表界面

2.1.5.                                    图片详情界面

2.1.6.                                    管理分类界面

2.1.7.                                    添加分类界面

2.1.8.                                    修改分类界面

2.1.9.                                    管理图片界面

2.1.10.                              添加图片界面

2.1.11.                              修改图片界面

2.2. 类设计

2.2.1.                                    User类

2.2.2.                                    Category类

2.2.3.                                    Photograph类

2.2.4.                                    Database类

2.3. 接口设计

2.3.1.                                    公共对象

User对象

属性

类型

说明

Id

Integer

用户ID

nickname

String

用户名(用于登陆)

mobile

String

手机号码,用户登录和其它信息验证

password

String

密码,用户登录

portrait

String

头像URL地址

Category对象

属性

类型

说明

Id

Integer

类别ID

title

String

标题

keywords

String

关键字,用于搜索

description

String

类别描述

parentid

Integer

上级类别编号,顶级类别编号为0,默认为0

userid

String

用户编号

Photograph对象

属性

类型

说明

Id

Integer

图片ID

title

String

标题

keywords

String

关键字,用于搜索

description

String

图片描述

Url

String

图片存储路径URL

Icon

String

缩略图路径URL

categoryid

Integer

类别编号

Response对象

属性

类型

说明

flag

String

响应标志:值为success表示成功;值为failed表示失败

message

String

提示信息

token

String

认证信息

data

array

如果flag为succes,其值为返回的数据;否则,为空。

 

2.3.2.                                    用户注册接口

接口名称:注册

接口描述:账号申请接口

输入参数:

字段

类型

是否必须

说明

nickname

String

Y

用户名

mobile

String

Y

电话号码

password

String

Y

密码

URL:http://hostname:port/api.php?action=regist

支持格式:JSON

支持客户端:Android / IOS

HTTP请求方式:get

权限级别:无

模拟请求:

结果返回:

2.3.3.                                    用户登录接口

接口描述:客户端认证授权,即客户端登陆接口 可以用昵称或手机号登录

输入参数:

字段

类型

是否必须

说明

action

String

Y

action=login

nickname

String

Y

用户名

mobile

String

Y

电话号码,与用户名二者任取其一

password

String

Y

密码

URL:http://hostname:port/api.php   

支持格式:JSON

支持客户端:Android / IOS

HTTP请求方式:POST

权限级别:无

模拟请求:

结果返回:

2.3.4.                                    用户退出

接口名称:退出登录

URL:http://hostname:port/api.php?action=login_out

支持格式:JSON

支持客户端:Android / IOS

HTTP请求方式:get

权限级别:登录

模拟请求:

返回;

 

2.3.5.                                    添加分类接口

接口描述:添加照片分类  如朋友  同学 

输入参数:

字段

类型

是否必须

说明

title

String

Y

分类标题

keywords

String

Y

关键字

description

String

Y

 描述

parentid

String

N

上级编号,顶级默认为0

URL:http://hostname:port/api.php?action=add_category

支持格式:JSON

支持客户端:Android / IOS

HTTP请求方式:get

权限级别:登录

模拟请求:

结果返回:

2.3.6.                                    修改分类接口

接口名称:修改分类

输入参数:

字段

类型

是否必须

说明

id

String

Y

分类id

title

String

Y

分类标题

keywords

String

Y

关键字

description

String

Y

描述

parentid

String

N

上级编号,顶级默认为0

URL:http://hostname:port/api.php?action=update_category

支持格式:JSON

支持客户端:Android / IOS

HTTP请求方式:get

权限级别:登录

模拟请求:

结果返回:

"response":

 

2.3.7.                                    删除分类接口

接口名称:修改分类

输入参数:

字段

类型

是否必须

说明

id

String

Y

分类id

URL:http://hostname:port/api.php?action=delete_category

支持格式:JSON

支持客户端:Android / IOS

HTTP请求方式:get

权限级别:登录

模拟请求:

 

返回结果:

2.3.8.                                    按用户获取分类接口

接口名称:用户分类

接口描述:返回用户分类

输入参数:

字段

类型

是否必须

说明

Userid

String

Y

用户id

URL:http://hostname:port/api.php?action=get_category_list_byuserid

支持格式:JSON

支持客户端:Android / IOS

HTTP请求方式:get

权限级别:无

模拟请求:

结果返回:

2.3.9.                                    获取所有一级分类接口

接口名称:一级分类

接口描述:返回所有一级分类

输入参数:无

URL:http://hostname:port/api.php?action=get_category_first_list

支持格式:JSON

支持客户端:Android / IOS

HTTP请求方式:get

权限级别:无

模拟请求:

结果返回:

2.3.10.                              获取子分类接口

接口名称:用户子分类

接口描述:默认返回所有子分类  若有参数userid则返回对应用户的子分类

输入参数:

字段

类型

是否必须

说明

Userid

String

N

用户id

URL:http://hostname:port/api.php?action=get_category_sub_list

支持格式:JSON

支持客户端:Android / IOS

HTTP请求方式:get

权限级别:无

模拟请求:

无userid时

结果返回:

有userid时

返回

2.3.11.                              上传图片接口(可多张上传)

输入参数:

字段

类型

是否必须

说明

action

String

Y

uploade_photograph

Myfile[]

String

Y

图片name

URL:http://hostname:port/api.php

支持格式:JSON

支持客户端:Android / IOS

HTTP请求方式:POST

权限级别:登录

模拟请求:

返回

2.3.12.                              发表图片(入库)

输入参数:

字段

类型

是否必须

说明

action

String

Y

add_photograph

title

String

Y

图片标题

keywords

String

Y

关键字

description

String

Y

描述

url

Array or String

y

图片地址 (多张时为数组)

lcon

Array or String

y

缩略图地址(多张时为数组)

categoryid

integer

Y

用户的分类id

URL:http://hostname:port/api.php

支持格式:JSON

支持客户端:Android / IOS

HTTP请求方式:POST

权限级别:登录

模拟请求:

结果返回:

2.3.13.                              获取缩略图接口

输入参数:

字段

类型

是否必须

说明

page

integer

N

默认返回第一页内容

title

integer

N

默认返回15条数据

URL:http://hostname:port/api.php?action=get_photograph_list

支持格式:JSON

支持客户端:Android / IOS

HTTP请求方式:get

权限级别:无

模拟请求:

结果返回:

2.3.14.                              更新图片接口

接口描述:在现有的基础(已发表照片的id)上更新照片

输入参数:

字段

类型

是否必须

说明

Id

integer

Y

需更新的id

action

String

Y

update_photograph

title

String

Y

图片标题

keywords

String

Y

关键字

description

String

Y

描述

url

Array or String

y

图片地址 (多张时为数组)

lcon

Array or String

y

缩略图地址(多张时为数组)

categoryid

integer

Y

用户的分类id

URL:http://hostname:port/api.php

支持格式:JSON

支持客户端:Android / IOS

HTTP请求方式:POST

权限级别:登录

模拟请求:

返回

2.3.15.                              删除图片接口

输入参数:

字段

类型

是否必须

说明

Id

integer

Y

需要删除的ID

URL:http://hostname:port/api.php?action=delete_user_photograph

支持格式:JSON

支持客户端:Android / IOS

HTTP请求方式:get

权限级别:无

模拟请求:

返回

2.3.16.                              获取图片详情接口

输入参数:

字段

类型

是否必须

说明

Id

integer

Y

需要获取的ID

URL:http://hostname:port/api.php?action=get_photograph_details

支持格式:JSON

支持客户端:Android / IOS

HTTP请求方式:get

权限级别:无

模拟请求:

 

返回

2.3.17.                              获取用户所有图片

输入参数:

字段

类型

是否必须

说明

Userid

integer

Y

需要获取的用户ID

URL:http://hostname:port/api.php?action=get_user_photograph

支持格式:JSON

支持客户端:Android / IOS

HTTP请求方式:get

权限级别:无

模拟请求:

返回:

2.4. 数据库设计

2.4.1.                                    概念设计及实体关系模型

2.4.2.                                    逻辑设计

2.4.3.                                    数据库物理设计

主要包括表、存储过程、视图、触发器、函数和事件等设计。

User表

字段

类型

长度或精度

允许Null

说明

Id

Integer

 

用户ID,主键,自动增长

nickname

String

50

用户名(用于登陆)

mobile

String

11

手机号码,用户登录和其它信息验证

password

String

50

密码,用户登录

portrait

String

100

头像URL地址

Category表

属性

类型

长度或精度

允许为Null

说明

Id

Integer

 

类别ID,主键,自动增长

title

String

50

标题

keywords

String

50

关键字,用于搜索

description

String

255

类别描述

parentid

Integer

 

上级编号,顶级编号为0,默认为0,外键

userid

String

 

用户编号,外键

Photograph表

属性

类型

长度或精度

允许为Null

说明

Id

Integer

 

图片ID,主键,自动增长

title

String

50

标题

keywords

String

50

关键字,用于搜索

description

String

255

图片描述

Url

String

255

图片存储路径URL

categoryid

Integer

 

类别编号,外键

 

 

 

阅读全文
0 0
原创粉丝点击