Contents
  1. 1. 实验班交流问答平台
  2. 2. 项目背景与意义
  3. 3. 项目用户
  4. 4. 项目功能
    1. 4.1. 一期目标
      1. 4.1.1. 用户档案管理
      2. 4.1.2. 文章系统
    2. 4.2. 二期目标
      1. 4.2.1. 声望系统
      2. 4.2.2. 问答系统
    3. 4.3. 三期目标
      1. 4.3.1. 内部公告与通知管理
      2. 4.3.2. 界面完善
  5. 5. 项目实现方案
    1. 5.1. 系统架构
    2. 5.2. 技术路线
  6. 6. 项目成员与分工
  7. 7. 项目的学习价值
  8. 8. 可行性分析
  9. 9. 难点与风险

文章更新于:2016年12月23日 星期五 13时44分12秒 CST

来源:Github

实验班交流问答平台

A forum of experimental class. ;)

项目背景与意义

设立实验班交流论坛,是为了促进内部交流,内外交流,鼓励分享,活跃技术氛围。。

项目用户

面向全师生,质量驱动,通过高质量问答、发表优质文章来获取声望


项目功能

一期目标

用户档案管理

  • 注册与登录
  • 通讯录与档案,如项目记录、github、博客地址等等
  • 单元测试(覆盖率90%以上)

文章系统

  • 鼓励用户发表文章
  • 评论,收藏
  • 声望相应变换(做好接口)
  • 单元测试(覆盖率90%以上)

二期目标

声望系统

  • 基于声望值给予对应的行为规范,如支持与反对等
  • 声望权限系统、声望变化接口
  • 用户声望动态计算?
  • 单元测试(覆盖率90%以上)

问答系统

  • 鼓励具有高质量、代表性的提问,及高质量的回答
  • 鼓励高质量回答
  • 根据赞同与被赞变化声望

三期目标

内部公告与通知管理

  • 公告看板
  • 站点短消息

界面完善

  • 调研,运营

项目实现方案

基本的系统架构与技术路线

系统架构

典型的BS架构,以浏览器的使用为主。目前主要以PC端交互为主,但部分关键或常用功能应保证移动WEB兼容性。同时,在技术架构上,应考虑全端支持的可扩展性。

技术路线

  • 单页应用
  • 前端 express(暂) 搭建的静态页面服务
  • 后端技术栈 Python3 + Flask + MySQL.
  • 开发与部署平台 *nix
  • 项目托管 Github
  • 项目原型 Quora & SF

因为流量不大,项目轻量,加上需要根据需求快速部署开发,所以选择py

不用node的原因是因为写腻了

第一次在项目中使用单元测试,使用的是py的unittest

附:单页应用的优缺点
作者:clia
链接:https://www.zhihu.com/question/20792064/answer/22784862
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

优点:
1、分离前后端关注点,前端负责界面显示,后端负责数据存储和计算,各司其职,不会把前后端的逻辑混杂在一起;
2、减轻服务器压力,服务器只用出数据就可以,不用管展示逻辑和页面合成,吞吐能力会提高几倍;
3、同一套后端程序代码,不用修改就可以用于Web界面、手机、平板等多种客户端;

缺点:
1、SEO问题,现在可以通过Prerender等技术解决一部分;
2、前进、后退、地址栏等,需要程序进行管理;
3、书签,需要程序来提供支持;

项目成员与分工

  • 金云天

    • 项目负责人:项目策划与管理、负责整体技术架构、团队管理
    • 后台开发、运维、部署、总体单元测试
  • 余小兰

    • 前台开发:参与各关键功能的开发,web独立开发,测试
  • 韩培

    • 移动端:安卓独立开发,测试

项目的学习价值

本应用是典型的基于WEB的信息管理应用,利于掌握WEB应用开发的基本要素和技术

Flask是最好的WEB后端开发框架,其涉及的各种设计模式与开发技术,是后端工程师的必备技能。(雾)

可行性分析

  • 该项目来源于我们正在进行的实践,持续的需求和即时的用户反馈将会推动项目的健康发展

难点与风险

  • 需求并未定型,除了技术能力,还需要产品设计能力
  • 工作量可能过小(老师说的)
  • ….
Contents
  1. 1. 实验班交流问答平台
  2. 2. 项目背景与意义
  3. 3. 项目用户
  4. 4. 项目功能
    1. 4.1. 一期目标
      1. 4.1.1. 用户档案管理
      2. 4.1.2. 文章系统
    2. 4.2. 二期目标
      1. 4.2.1. 声望系统
      2. 4.2.2. 问答系统
    3. 4.3. 三期目标
      1. 4.3.1. 内部公告与通知管理
      2. 4.3.2. 界面完善
  5. 5. 项目实现方案
    1. 5.1. 系统架构
    2. 5.2. 技术路线
  6. 6. 项目成员与分工
  7. 7. 项目的学习价值
  8. 8. 可行性分析
  9. 9. 难点与风险