Skip to content
JackGo edited this page Dec 1, 2017 · 10 revisions

1 项目范围

实现一个浏览器插件,插件要为用户提供最为简单便捷的一键式翻墙服务。

翻墙的范围为全部GW屏蔽的国外网站。

2 分析/软件需求

目前插件市场中此类插件很多,通过对其中几款的调研,发现这类插件的优点:普遍使用简单,价格低廉。

缺点:使用较为复杂,英文界面,还有的插件界面很low,速度慢。

3 功能设计

3.1 技术栈

前端插件:html bootstrap (jquery) (DOM可以满足要求,基本使用DOM即可,舍弃jquery)

后台服务:spring tomcat mysql/postgresql

跳板机:squid

3.2 规范

3.2.1 前台服务端通信规范

  1. 服务端以HTTP的方式为客户端提供服务。
  2. 目前不适用https(这里记录,后期考虑使用)
  3. 约定网址(网址前面的 http://IP/ 统一省略)
    • popup界面:api/popup
    • options界面:api/options
    • proxy界面:api/proxy/manage
    • shop (暂时没有)
    • vip (暂时没有)
  4. 数据GET格式必须为JSON格式。

3.3 软件架构

后期补充

4 里程碑计划

4.1 迭代一

4.1.1 用户端交付目标

1 最基本的popup窗口,要求界面简洁美观,具备两个按钮,一个设置页面的超链,一个流量、时间的统计信息。(完成界面的编写,功能不要求)

--------------------------
|  ICON   BreakingWall   |
|  局部加速     开关      |
|  全局加速     开关      |
|  --------------------- |
|  统计信息......         |
|  --------------------- |
|  网址         设置界面  | 
-------------------------|

2 需要基本的主页

初步想法需要三个标签页

  1. 用户中心:显示用户信息,用户状态(后台用户、免费用户、付费用户)

  2. 网站白名单:用户可以手动在里面添加白名单,在白名单之内的网站才进行加速(默认为空,用我们的白名单)

  3. 添加代理服务器:用户可以添加使用自己的代理服务器(默认为空,用我们的服务器)

4.1.2 服务端交付目标

  1. 启动基本的WEB服务,提供网址可以进行Post和GET

  2. 根据需求完成初步的数据库表设计(需求哪不清楚的交流完了补充进来)

  3. POPUP界面需要GET得到的JSON数据已样本数据的方式返回。

  4. POPIP界面需要POST到服务端的数据接收,并做简单的处理。

4.1.3 跳板机

见迭代二

4.2 迭代二

4.2.1 用户端交付目标

完成界面和js逻辑的开发

4.2.2 服务端交付目标

具备修改squid登录的能力

4.2.3 跳板机

安装学习squid的使用方法

5 开发

5.1 联调计划

时间 内容 结果
2017年11月26日 前后台基本通信 ?

6 测试

单元测试

整体测试