功能划分
1. 新闻获取模块
新闻获取模块由python实现。首先从各个新闻网站抓取新闻,并在抓取的过程中实现了对新闻的分类,例如:国际,军事,财经,文化,公益等。不同类别的新闻储存在数据库不同的类别中。
在获取新闻内容时会获取新闻的标题,新闻发布的时间,以及记录下新闻原网站的网址。新闻的内容会分为三类:p代表不同段落,strong代表加粗的字体和段落,img代表图片。如果是图片,则保存下该图片的链接。
2. 新闻列表加载模块
通过向服务器发送相应新闻的类别,从服务器获取到该新闻类别下所有新闻的列表。然后将该新闻类别下所有新闻的预览通过js动态加载到网页中。并在加载的过程中实现了分页的功能。
用户可以在新闻列表中选中或者取消喜欢的新闻,选中或者取消选中喜欢的新闻通过向服务器发送添加或删除喜欢新闻的请求实现。
3. 新闻内容加载模块
通过向服务器发送该新闻的id,从服务器获取该新闻的详细内容及信息,并加载到网页端。
用户在进入该网页时,会向服务器发送增加用户浏览记录的请求。服务器收到请求后会在用户相应的浏览记录中增加该新闻的记录。
用户同样可以在该页面选中或者取消选中喜欢的新闻。
4. 用户管理模块
用户可以通过注册模块向系统中注册,需要输入用户名,邮箱和密码,邮箱是唯一属性,用户注册时会检测该邮箱用户是否已经存在。邮箱需要是正确的邮箱的格式,密码需要保证两次密码输入完全相同。
用户登录输入邮箱和密码即可,向服务器发送请求后,服务器端会检测用户邮箱是否存在、邮箱和密码是否匹配等。
访问新闻页面时会检测此时用户是否登录,如果用户已经登录,则会记录用户的浏览新闻记录和同步用户关注或取消关注新闻的操作,统计出的数据用户用户新闻的个性推荐的分析。
5. 服务器路由模块
node.js下的routes根据前端请求的路径对请求进行分类,然后调用不同的模块对不同的请求进行处理,进而返回不同的数据。
6. 数据库交互模块
通过不同的接口直接与数据库进行交互并返回结果。与mongodb的交互通过mongoose模块实现。
7. 新闻推荐模块
新闻推荐模块通过分析用户浏览新闻和关注新闻话题的个数得到用户比较喜爱的新闻的话题。在这些话题中的每个话题中提取一定数量的新闻(不包含用户浏览过的和关注过的新闻),得到新闻列表后返回给前端页面。
每次得到的新闻列表都会根据用户的浏览记录和关注新闻的记录动态生成。
8. Android客户端模块
由于前端在实现界面时实现了响应式的页面,故在android客户端只需调用一个webView将相应的网址加载出来即可以实现APP同样的功能。
新闻的推送通过APP定时向服务器发送获取推送的请求,服务器向Android客户端返回相应的推送的内容。客户端在获取推送内容后将推送内容推送至Andorid手机的状态栏,提醒用户观看相关新闻。
服务器推送的内容即为推荐新闻栏目的第一条新闻。
, 相关下载链接:
https://download.csdn.net/download/s1t16/87377717?utm_source=bbsseo