/graphene-doc-server

石墨烯文档后端代码

Primary LanguagePython

graphene-doc-server

石墨烯文档

项目说明

原始的需求文档请参见最后。

石墨烯文档是一款在线文档协作平台,可以在Web端处理富文本的编辑,具有个人工作台、文档有关处理、团队协作、消息通知系统等功能。

石墨烯文档最大的特点是其具有多人同时协作功能,可以支持多人同时编辑同一份文档,编辑内容实时同步。

项目相关地址

项目地址:

暂未公布。

石墨烯文档后端代码

后端代码储存在此处。

前端代码网址: https://github.com/IAmParasite/graphene-doc-frontend

后端代码网址:

https://github.com/Coach257/graphene-doc-server

项目协作功能视频展示:

https://www.bilibili.com/video/BV1Yz4y1f7SG

安装方法

分别从前后端仓库下载项目文件。

在本地创建名为Shimoxi的项目文件夹。在该文件夹下,使用终端命令创建frontend。

vue create frontend

用前端仓库中的src文件夹替换frontend文件夹下的src文件夹。

将后端仓库中的backend文件夹复制到项目文件夹下。

打开两个终端窗口,分别进入前端frontend文件夹和后端backend文件夹下。

注意⚠️:下面请根据输入命令后的报错信息安装相应的组件。

在frontend的终端中输入命令:

npm run server

在backend的终端中输入命令:

flask run

如果前后端均能够正常运行,则项目移植成功,否则请检查是否缺少必要的组件。

打开方法

本地后端方法

打开两个终端窗口,分别进入前端frontend文件夹和后端backend文件夹下。

注意⚠️:下面请根据输入命令后的报错信息安装相应的组件。

在frontend的终端中输入命令:

npm run server

在backend的终端中输入命令:

flask run

在浏览器中输入网址:

http://localhost:8080

即可进入石墨烯文档

服务器后端方法

打开终端窗口,进入后端backend文件夹下。

注意⚠️:下面请根据输入命令后的报错信息安装相应的组件。

在backend的终端中输入命令:

flask run

在浏览器中输入项目地址(暂未公布),即可进入石墨烯文档。

用户手册

编辑界面

编辑界面分为两个区域:编辑区和左侧边栏。

image

左侧边栏

左侧边栏有评论、历史、分享和权限管理四个板块。

评论

在评论区,可以发表对于当前文档的评论。

若是当前用户具有评论权限,则可以进行评论。

在上方文本框中键入评论内容,点击右侧的评论按钮,就可以发送评论。

已经发送的评论可以在评论区下方查看,已发表的评论按照发表时间的顺序依次排列。

image

历史

创建文档和修改文档会被按照时间顺序记录。

如果当前用户对于当前文档有查看的权限,则可以查看历史记录。

分享

点击分享板块可以将文档分享给站内其他用户。

如果当前用户有对于当前文档的分享权限,则可以进行分享。

image

可以在搜索栏中输入部分关键字,服务器会自动返回含有关键字的用户信息,点击右侧的share按钮就可以将文档分享给他,使其获得进入文档以及相应的编辑、查看、分析等权限。

文档编辑区

image

文档标题

标题区展示了文档的标题和类别。比如图中的文档标题为《文档展示》。

正在编辑

正在编辑区显示了正在编辑当前文档的用户的头像。

文档编辑区

文档编辑采用了mavonEditor,支持富文本编辑和MarkDown,能够同时在文档中插入图片和文字。

mavonEditor是一种基于Vue的markdown编辑器。

具体文档请参见https://github.com/hinesboy/mavonEditor。

编辑区左侧为输入区,右侧为预览区。

第一行:

image

加粗、斜体、标题、下划线、删除线、标记、上标、下标、左对齐、中对齐、右对齐、引用、标号、不可见、全屏、单窗口、双窗口

第二行:

image

标号、链接、图片、代码段、表格、回撤、重做、删除、保存

项目原始需求

“金刚石文档”内容描述

——北航日光主机哈里斯公司

整体概述

考虑疫情的影响,本司决定开发一个超越“石墨文档”的代号为“金刚石文档”的在线文档协作平台,当然具体名字各组随意取即可,金刚石只是代号,最终展示形式为PC端的Web网站。

有关项目,公司决定打造一个不同的协作平台,专注于一点,不需要在共享时实现类似腾讯文档的实时同步,而只要求能够协作即可,当然还需要有辅助功能来支持,预计的功能可分为以下几方面:基础功能、个人工作台、文档有关处理、团队协作、消息通知系统。

各部分描述

1.基础功能

项目的最终展现形式为PC的web网站,所以基础功能即为了使用协作能力需要具备的基础:注册、登录、个人信息的查看、完善与修改功能。

2.个人工作台

用户登录后应该能使用平台的功能,个人工作台便是访问文档的起始点。

在工作台用户应该至少能基于以下几种分类来访问内容:最近浏览的文档、收藏的文档、自己创建的文档以及加入的团队(这里访问加入的团队后,用户也应该能根据情况看到团队文档和信息等内容)。

并且应该有回收站的存在,用于在一定情况下恢复删除的文档。

3.文档有关处理

现在的共享文档功能十分全面,而本司的“金刚石文档”,有如金刚石的结构一样,非常的专一,只要求实现doc文档这一种形式的共享。(并且只是内容,不需要存储实际的文件,这里可参考腾讯文档)

针对文档,需要有创建、基于模板创建、修改、评论、分享等功能。

**文档的创建修改:**文档应该最少有标题、内容、文档基础信息等内容,在内容编辑上推荐并且仅允许大家使用富文本编辑器之类的模板,以节省经费。

**权限:**文档应该有权限的设置和调整功能,不同的权限在查看、讨论、修改、分享等时候应该有区别,并且需要考虑到团队的存在。

**评论:**其他人或作者需要能够对特定文档增加评论,以作为建议或意见。

**分享:**文档或者其他内容应该能以某种形式(例如链接、二维码、id信息),来分享给其他人,收到的人可以基于那种分享的内容去访问到对应的内容,同时访问时需要结合权限控制能力。

4.团队协作

团队类似于一个文件夹,这一“文件夹”至少要有创建者和成员两种身份,文件夹应该包括有团队文档和团队信息等内容。

创建者应该有对团队进行调整的能力,例如管理成员、解散团队、设置文档权限。非创建者也应该有对应的加入、退出团队等功能。

5.消息通知系统

这部分属于不强制的附加内容,完成的组会视情况增加分值。

消息通知即本系统中用户应该能接收消息或通知,它们范围没有具体定义,如下的内容均可作为消息来展示给用户(仅是示例):团队邀请信息、加入退出团队的结果、踢出团队时的提醒、文档被评论的提醒等等。

这部分的消息仅有这类系统消息,用户的私信功能是不要求实现的。

开发须知

  1. 开发时应该主动借鉴现有的互联网平台来保证用户体验,不应该等待甲方提出具体需求,而是在不明确时去和甲方交流,尽可能让项目满足甲方的设想。

  2. 平台功能应该均能由用户在前端完成,不能有开发人员干涉,例如通过访问后端操作数据以实现成员、文档的管理,这类情况会直接视作不符合要求。

  3. 整体开发周期为10天,迭代分为两次,经费为两学分,期待大家的成果。