WEDO 创意论坛技术规格说明书

0x0 文档版本

版本号 说明
v1.0 初步确定技术路线

附Github仓库:WEDO


0x1 技术说明

1. 前端框架

  在主流的前端框架中,我们调研了Vue、BootStrap、AnguarJS、ReactJS等框架。每个框架都有各自的优点,但是考虑到小组成员的前端开发经验较少,最终选择了比较容易上手的BootStrap框架。BootStrap框架拥有很多封装好的UI组件,能够快速地搭建出优质的前端页面。

2. 后端框架

  在选择编程语言的时候,抛开适合写服务器和引擎的C++以及适合高并发场景下的Go,我们讨论并分析了Java、Python、PHP三种语言,分别对应Django、SSM(Spring+SpringMVC+MyBatis)和PHP框架。
  我们小组的开发部门有成员有使用Spring开发的经验。但是因为SSM的学习成本相对较高,需要从Servlet开始,并且一开始上手使用Hibernate或者MyBtis比较麻烦,于是排除了Java。
  根据对PHP的调研,世界上超过80%的网站的搭建都使用到了PHP,基本上大部分论坛以及电商的网站功能,都能使用PHP7实现;另一方面看,PHP7的性能提升了很多,适合于API的开发。同时由于组里开发人员对Python后端开发以及在Django框架下的开发不熟悉,我们小组决定使用PHP(世界上最好的语言)作为我们小组后端的编程语言。
  有关PHP的开发框架,经过对laravel和ThinkPHP两框架的调研后。我们初步确定最后使用Laravel框架。其主要原因是在Lavarel中内置了大量的API供开发者使用,在实际应用中更加贴近面向对象的开发方式。而且Laravel框架拥有大量的中文文档作为参考:Laravel中文社区。另外,从网络安全的角度来看,Laravel更胜一筹。


0x2 服务器平台搭建

  我们准备使用LNMP(Linux + Ngnix + MySQL + PHP)的环境。相较于其他服务器(如Apache),Nginx具有以下两个优点:

  1. 反向代理,能够实现请求的分发,以及对于用户的后台不可见性。
  2. 能够实现负载均衡。这有助于后期对于大流量用户情况的适应。

  但是对于论坛前期的预期运行情况,还不需要考虑服务器压力和性能对于系统的影响,并且最开始只有一台可供使用的服务器。
  对于数据库的选择,我们选择比较常用的MySQL
  考虑到服务器上并不需要桌面环境,所以开发环境预计使用CentOS 6.x | 7.x版本。


0x3 项目技术设计

项目功能抽象

  项目的具体功能已在项目功能设计书中描述,以下为项目功能的初步抽象图:

前端界面设计

  项目具体的前端界面设计已在界面设计计划书中进行描述。

后端实现设计

路由路径设计

  项目后端的路由分发路径如下图所示:

数据信息存储

  所有的数据存储至后端的MySQL数据库中。数据在数据库的组织方式如下图所示:

  各数据的详细类型及规定如下表所示:

数据表名 属性名 属性类型 是否为主属性
User uid int(8) Yes
user_name varchar(32)
password varchar(256)
user_kind int(8)
user_regTime timestamp
user_email varchar(32)
user_info varchar(128)
Project pid int(8) Yes
project_name varchar(32)
project_kind int(8)
project_createTime timestamp
project_progress int(4)
project_info varchar(512)
Workgroup gid int(8) Yes
group_name varchar(32)
group_regTime timestamp
group_kind int(8)
Comment cid int(8) Yes
pid int(8)
uid int(8)
comment_time timestamp
comment_info varchar(256)
comment_thumbs_up int(8)
Reply rid int(8) Yes
cid int(8)
uid int(8)
reply_time timestamp
reply_info varchar(256)
reply_thumbs_up int(8)
ProjectOwner pid int(8) Yes
uid int(8)
ProjectDeveloper pid int(8) Yes
gid int(8)
WorkgroupMember gid int(8) Yes
uid int(8) Yes
UserLabel uid int(8) Yes
user_label int(8) Yes
WorkgroupLabel gid int(8) Yes
group_label int(8) Yes

异常处理

  目前,系统中预期中的各个部分异常如下图所示:


[V1-Team] WEDO创意论坛技术规格说明书的更多相关文章

  1. [V1-Team] WEDO创意论坛功能规格说明书

    项目功能规格说明书 版本说明 版本 内容 时间 V1.0 描述总体目标,用户使用场景,界面原型.功能设计及验收 2019.3.28 附Github仓库:WEDO 正文 1.目标 规范指导整个项目设计与 ...

  2. (Alpha)Let's-技术文档(技术规格说明书)

    技术规格说明书 抽象 首先,对抽象原则的理解,“抽象”这一概念本身就很抽象.抽象体现的是一种概括能力.我们生活中遇到的很多客体,其在某些方面具备有一些相似甚至相同的性质,以这些特点而非事物本身来认识鉴 ...

  3. 【Alpha】技术规格说明书

    由于第1周已经写过技术规格说明书(设计文档),本周更新了上一版内容. Github地址:https://github.com/buaase/Phylab-Web/blob/master/docs/Ba ...

  4. [软件工程基础]PhyLab 技术规格说明书

    由于暂不对后端有所改变,因此该部分技术规格说明书复用 Default 的技术规格说明书. 由于现阶段对于 Laravel 框架不熟悉,以及对于是否使用已有的轮子或者造轮子实现预想的功能还不清晰,因此暂 ...

  5. 【近取 key】技术规格说明书

    项目 内容 这个作业属于哪个课程 2021春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 技术规格说明书 我在这个课程的目标是 进一步提升工程化开发能力,积累团队协作经验,熟悉全栈开发流程 ...

  6. 【BUAA软工】技术规格说明书

    项目 内容 班级:北航2020春软件工程 博客园班级博客 作业:技术规格说明书 技术规格说明书 宏观技术 后端 WEB服务器 WEB服务器选取的是Springboot,作为当下Java语言最主流的WE ...

  7. [no_code]OCR表格处理——技术规格说明书

    项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 技术规格说明书 我们在这个课程的目标是 远程协同工作,采用最新技术开发软件 这个作业在哪个具体方面 ...

  8. Team++_炸弹人软件需求说明书

    目标是什么,目标不包括什么? 目标是制造一款受青年人(大学生或中学生)喜爱的手机益智闯关游戏,可以用来打发时间或放松心情. 用户和典型场景是什么? 用户:学生 典型场景:在宿舍无聊时.在睡觉之前或在课 ...

  9. 团队作业Week6:规格说明书编写

    (1)请分析你们团队项目的典型用户和场景,并写一个团队博客发布你们团队项目的功能规格说明书. (2)再写一个博客团队博客发布你们项目的设计文档(技术规格说明书). 截止时间:2015-11-03

随机推荐

  1. linux命令下载安装软件

    在ubuntu下获取对应内核源码命令 Ubuntu的包管理系统,为您提供了一种高效快捷的软件管理方式,您只要知道您需要什么软件就可以了,甚至不需要关心它存放在网络上的哪一台服务器中,而且绝大多数的软件 ...

  2. JUnit 两日游

    从一个简单的Junit demo到一个用户名与密码的验证 学习Junit,首先肯定是要环境的搭建与配置. 第一步,安装JDK,配置环境变量 第二步,安装eclipse.OS X环境下,eclipse并 ...

  3. Row_Number() OVER()函数使用举例

    语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN) 简单的说row_number()从1开始,为每一条分组记录返回一个数字,这里的ROW ...

  4. GlobalAlloc()和malloc()、HeapAlloc()

    两者都是在堆上分配内存区.  malloc()是C运行库中的动态内存分配函数,WINDOWS程序基本不使用了,因为它比WINDOWS内存分配函数少了一些特性,如,整理内存.  GlobalAlloc( ...

  5. Android Tablayout属性介绍

    1.添加依赖 compile 'com.android.support:design:26.0.0-alpha1' 2.属性 改变选中字体的颜色app:tabSelectedTextColor=&qu ...

  6. Asp.net负载均衡之Session

    在WEB场中,动态网页往往会因为几台主机做了负载而产生SESSION丢失的问题,网上也有很多的介绍,我这里只将我经历的过程给大家分享一下: 系统要运行在负载平衡的 Web 场环境中,而系统配置文件we ...

  7. html5 video微信浏览器视频不能自动播放

    html5 video微信浏览器视频不能自动播放 一.微信浏览器(x5内核): 1.不能自动播放 2.全屏 3.最顶层(z层的最顶层) 二.ios系统解决方案:(无phone手机未测试) <au ...

  8. 【arc074e】RGB Sequence dp

    Description ​ 丰泽爷今天也在愉快地玩Minecraft! ​ 现在丰泽爷有一块1∗N1∗N的空地,每个格子按照顺序标记为11到NN.丰泽爷想要在这块空地上铺上红石块.绿宝石块和钻石块作为 ...

  9. 【bzoj3309】DZY Loves Math 莫比乌斯反演+线性筛

    Description 对于正整数n,定义f(n)为n所含质因子的最大幂指数.例如f(1960)=f(2^3 * 5^1 * 7^2)=3, f(10007)=1, f(1)=0. 给定正整数a,b, ...

  10. Error creating bean with name 'dateSource' defined in file 错误信息

    问题的原因: 在web项目中搭建SSM框架,启动Tomcat时出现错误信息 有配置文件:applicationContext-mybatis.xml (Spring配置) spring-servlet ...