Skip to content

csuastt/Q-A-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

2021秋软件工程项目:付费问答系统

本文档是清华大学2021秋软件工程项目——付费问答系统项目的介绍文档(by 刘松铭 徐晨曦 孙天乐 肖震宇 刘程华)。

Git操作相关

  1. 分支:

    1. 除非特殊操作,请不要直接操作master分支
    2. 绝大部分通常操作(新功能、bug修复等)都应在其他分支中进行并在审核通过后并入master分支。
    3. 请各位为自己的分支取有意义的名称。请在分支名最后加入关联的issue编号,如backend-user-1
    4. 不要执行git push --force等类似的危险操作
  2. 请检查自己的git所设置的用户名和邮箱是否正确。SECoder平台为大家设置的用户名user.name为中文姓名,邮箱user.email<学号>@secoder.net。若非在SECoder上明确更改,请保持这项设置,以免无法统计commit数量等情况出现。若不想改变全局git设置,在项目文件夹中执行git config可以只为本项目进行设置。

    例如:

    # 在项目目录prj2a-repo/下
    # 如下设置仅仅会改变这个目录下的姓名和邮箱,不会影响全局
    git config --local user.name "丘勇"
    git config --local user.email "[email protected]"
    # 验证一下是否修改成功
    git config --list
  3. commit信息应有意义。下面给出项目 (提议的) commit message规范:

    1. Template:(type) (optional scope): [description]

    2. type:此commit所做的事情的类型,如:

      1. fix:修复bug
      2. feat:添加新特性、新功能
      3. refactor:代码重构
      4. build chore ci docs style test 等。
    3. scope:此commit所影响的范围,如:

      1. frontend backend
      2. user payment question

      在scope后需要加上#和关联的issue编号

    4. description:简要描述

      1. 现在时,全小写,末尾应无标点符号
      2. 最重要的,不要说废话
    5. Demo:

      1. (feat) (frontend #1): add user information page
      2. (fix) (backend, question #2 #3): check inputs in creating question

    注意:根据助教的要求,所有的commit都需要关联issue,一个例子如下。

    # 关联一个issue
    git commit -m "(fix) (frontend #2): fix user info overflow bug"
    # 关联多个issue
    git commit -m "(feat) (backend #2 #3): check audit info"
  4. 关于git issue的使用

    本项目的所有任务的分配都通过issue的形式来完成。

    issue一般情况下由组长统一进行分配,当某位组员发现bug或者发现某些需要改进的地方的时候,可以自行创建issue分配给自己。若要分配给其他组员,请与组员进行沟通。

    issue尽可能要打上标签,已有的标签如下

    • bug:说明这个issue与一个bug有关。
    • critical:说明这个issue非常重要,需要首先完成。
    • development:说明这是一个开发进程的issue。
    • docs:说明这个issue的内容是要修改或新增某个文档,例如API文档。
    • enhancement:说明这个issue是在已有的基础上进行改进,例如im系统需要支持传图片和视频的功能。
    • discussion:说明这个issue是要讨论某个事项。

    issue必须要在审核完成和合并到master分支后并且确认无问题才能关闭。

  5. (Optional) 可以设置个人GPG Key来保证署名的提交确实为本人操作。具体操作参见文档

技术选型

工作流程

  1. docs/ROADMAP.md中包含了项目的整体计划与待办事项。
  2. 当前应当进行和正在进行的工作应当在Issues中进行进度跟踪和管理。请对应工作的负责人将issue关联(assign)给自己。
  3. 一切正在进行中的工作都应在单独的分支中进行。对于某项工作的疑问、建议等都应在对应issue中进行讨论。工作完成后应当提起pull request,等待各位组员都审核通过、CI测试顺利后,合并入master分支。鉴于项目规模,目前不采用额外的dev分支进行合并操作。
  4. 某项工作完成后,应当关闭对应Issue(应当由GitLab自动关闭),在ROADMAP.md中进行标记。

后端API通讯协议

(TBD)

在组员沟通后,请后端同学在docs/api文件夹中写明后端API的使用方法。具体格式参见目录下的README.md

CI/CD与部署

(TODO)

About

A website project for Q&A system

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages