中期报告
一、任务书中本阶段工作目标与任务要求
本阶段的任务书中计划:
5-8周,进行市场调研,调查市场上相似的网站以及应用,确定需求,进行总体设计,确定网站中的基本模块,同步编写前台页面,然后进行详细设计,完成数据库的设计,进行数据库优化,将前台与数据库进行连接,调整网站中的问题;
9-12周,系统实现:实现网站的后端管理,对系统进行测试,找出系统中的错误,并且将错误改正;
本阶段主要完成的是详细设计,详细设计包括页面设计,后端项目架构,数据库设计,前后端交互等。
二、目前已完成任务情况
进行市场调研,调查市场上相似的网站以及应用,确定需求,进行总体设计,确定网站中的基本模块,同步前台页面。
从豆瓣电影网首页中看,主要有电影、电视剧、排行榜、分类、影评等模块。
IMDB首页看,主要有新闻电视最新信息、还有最近热播、新闻社区等。
1905电影网首页主要有影评、影视新闻、影视资讯等。
在影院模块,1905提供了电影分类、最新电影等快捷推荐机制。
根据以上调查,市场中的电影网主要有影视资讯,最新电影,影视排行、影视分类等功能,针对这些功能,我设计了电影网前后端交互页面,下面介绍我的项目进展状况:
l 用户注册登录页,主要针对用户和管理员,用户必须先注册然后再登录网站,管理员可以直接进行登录,通过isSuper字段进行权限控制
l 用户登陆后,看到电影网首页,可以看到友好的页面,电影网logo,搜索资源功能,轮播图展示,热门电影,最新电影等模块
l 首页中的电影推荐,分为热门电影和最新电影,这些电影是按照数据库movie表中的isNew,isHot等字段分类别获取得到:
l 电影分类模块:按照年份、评分、国家、类型进行分类,比如说筛选上映年份不限,上映地日本,评分在8.0分以上的奇幻类型的电影,如下搜索结果:
l 电影排行榜模块,提供了豆瓣top250影片以及年度口碑榜,根据数据库字段中的isTop,数据来源于豆瓣网的电影排行榜接口,年度口碑榜还在设计中
l 影评模块包括最受欢迎的影评、最新影评等,这个模块还在完善中,主要通过对影视作品的评论打分的形式,对所有影视评论做一个整体的排名,包括时间排序,还有评分排序,得到最新影评和最受欢迎的影评
l 搜索某个关键字结果界面,如搜索关键字为‘美丽’,与此关键字有关的电影的相关信息,页面中也会提示用户刚刚搜索的内容:
如果用户搜索的关键字,并没有结果,那么用户看到的界面是这样的,会提示暂无某某关键字的搜索结果
l 个人中心页面,系统获取个人中心信息的URL,会自动进入用户个人中心页面,主要通过获取用户Id查询出用户的基本信息,连表查询Movie查询用户感兴趣的电影,通过cookie获取用户的踪迹,然后显示在‘最近浏览过的电影’中,用户也能上传自己的头像,还有编辑个人信息,以及登出系统等功能,目前这一模块还在开发中
详细设计:完成数据库的设计,进行数据库优化,将前台与数据库进行连接,调整网站中的问题
网站整体功能图,目前已完成网站的用户模块,电影分类模块,电影详情部分模块,电影推荐部分模块,电影排名模块,未完成部分是电影评论模块
网站后端架构,包括新建规范功能包:com.movie.cotroller控制器层,com.movie.dao数据操作层,com.movie.entity实体类包,com.movie.service业务接口层,以及他的实现类com.movie.serviceImpl等,引入先前写好的前端页面,并将它们转换为jsp页
已完成的业务接口:获取热门电影,最新电影,排行榜电影,豆瓣数据自动写入数据库,电影详情,搜索字段,特定类型筛选,分页功能等
数据库设计:
电影实体、评论实体、用户实体之间的关系ER图:一对多的关系,电影实体与评论实体,是一对多的关系,一部电影下可能有多个评论,用户实体与评论实体也是一对多的关系,一个用户可以评论多个评论
电影类型与电影实体之间的ER图,一部电影有多个类型,一个类型也能存在于多部电影中,多对多关系,所以中间的联系也要形成一个表,专门保存双方的主键
电影实体与演员实体之间的ER图,同样一个演员也能出演多部电影,一部电影也有多个演员出演,所以是多对多关系,所以中间的联系类型也要形成一个表,专门保存双方的主键
根据需求和ER图,最终设计出七张数据库表,分别是电影表Movie表,演员表casts表,类型表genres表,用户表user表,以及他们之间的练习类型:电影-演员表,电影-类型表,用户评论表。Movie表中有movieId,movieName,director,writer,casts,genres,country,speekLang,onyear,durating ,image,subtype,rating,movieDesc,isHot,isNew,isTop等字段,分别代表电影ID,名称,导演,编剧,演员,类型,国家,语言,上映时间,时长,海报,作品类型,评分,简介,是否热门,是否最新,是否为豆瓣上榜电影等;演员表主要有演员id,演员名称,演员图片,性别,总结,生日,国籍;类型实体主要有类型Id和类型名称,主要通过和movie表联合查询得到综合的类型结果,user表中主要有用户ID,userId,用户名username,登录密码userPwd,性别,类型喜好typeLike,是否为超级管理员isSuper,评论实体包括评论Id comtId,评论主题comtSub,评论内容,comtContext,以及评论时间comtTime,被评论的电影Id movieID作为外键,评论该电影的用户ID userId 作为另外一个外键,便于查询数据库
三、存在的问题和拟解决方法
目前已经实现的功能:用户登录注册,首页展示,电影分类,电影排行,电影搜索,个人中心,详情展示;
未完成的功能:用户登出,精彩影评展示,最近看过电影,电影详情页面中的电影推荐和用户评论尚未完成;
存在的问题:目前个人中心模块有待完善头像上传功能;电影分类中,筛选过后结果集比较少的情况下,不该出现分页的效果;
针对未完成的页面和接口需要加快速度开发,针对目前系统中存在的问题,我打算参考现有的电影网中的展示效果,对现有的系统进行优化,对于他的分页效果的问题,可以通过一个分页状态pageState来判断,传递这个参数,获得当前所有的分页状况,然后把及时更改状态,更新每一页的数据。