原始的需求文档请参见最后。
石墨烯文档是一款在线文档协作平台,可以在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
在浏览器中输入网址:
即可进入石墨烯文档
打开终端窗口,进入后端backend文件夹下。
注意
在backend的终端中输入命令:
flask run
在浏览器中输入项目地址(暂未公布),即可进入石墨烯文档。
编辑界面分为两个区域:编辑区和左侧边栏。
左侧边栏有评论、历史、分享和权限管理四个板块。
在评论区,可以发表对于当前文档的评论。
若是当前用户具有评论权限,则可以进行评论。
在上方文本框中键入评论内容,点击右侧的评论按钮,就可以发送评论。
已经发送的评论可以在评论区下方查看,已发表的评论按照发表时间的顺序依次排列。
创建文档和修改文档会被按照时间顺序记录。
如果当前用户对于当前文档有查看的权限,则可以查看历史记录。
点击分享板块可以将文档分享给站内其他用户。
如果当前用户有对于当前文档的分享权限,则可以进行分享。
可以在搜索栏中输入部分关键字,服务器会自动返回含有关键字的用户信息,点击右侧的share按钮就可以将文档分享给他,使其获得进入文档以及相应的编辑、查看、分析等权限。
标题区展示了文档的标题和类别。比如图中的文档标题为《文档展示》。
正在编辑区显示了正在编辑当前文档的用户的头像。
文档编辑采用了mavonEditor,支持富文本编辑和MarkDown,能够同时在文档中插入图片和文字。
mavonEditor是一种基于Vue的markdown编辑器。
具体文档请参见https://github.com/hinesboy/mavonEditor。
编辑区左侧为输入区,右侧为预览区。
第一行:
加粗、斜体、标题、下划线、删除线、标记、上标、下标、左对齐、中对齐、右对齐、引用、标号、不可见、全屏、单窗口、双窗口
第二行:
标号、链接、图片、代码段、表格、回撤、重做、删除、保存
考虑疫情的影响,本司决定开发一个超越“石墨文档”的代号为“金刚石文档”的在线文档协作平台,当然具体名字各组随意取即可,金刚石只是代号,最终展示形式为PC端的Web网站。
有关项目,公司决定打造一个不同的协作平台,专注于一点,不需要在共享时实现类似腾讯文档的实时同步,而只要求能够协作即可,当然还需要有辅助功能来支持,预计的功能可分为以下几方面:基础功能、个人工作台、文档有关处理、团队协作、消息通知系统。
项目的最终展现形式为PC的web网站,所以基础功能即为了使用协作能力需要具备的基础:注册、登录、个人信息的查看、完善与修改功能。
用户登录后应该能使用平台的功能,个人工作台便是访问文档的起始点。
在工作台用户应该至少能基于以下几种分类来访问内容:最近浏览的文档、收藏的文档、自己创建的文档以及加入的团队(这里访问加入的团队后,用户也应该能根据情况看到团队文档和信息等内容)。
并且应该有回收站的存在,用于在一定情况下恢复删除的文档。
现在的共享文档功能十分全面,而本司的“金刚石文档”,有如金刚石的结构一样,非常的专一,只要求实现doc文档这一种形式的共享。(并且只是内容,不需要存储实际的文件,这里可参考腾讯文档)
针对文档,需要有创建、基于模板创建、修改、评论、分享等功能。
**文档的创建修改:**文档应该最少有标题、内容、文档基础信息等内容,在内容编辑上推荐并且仅允许大家使用富文本编辑器之类的模板,以节省经费。
**权限:**文档应该有权限的设置和调整功能,不同的权限在查看、讨论、修改、分享等时候应该有区别,并且需要考虑到团队的存在。
**评论:**其他人或作者需要能够对特定文档增加评论,以作为建议或意见。
**分享:**文档或者其他内容应该能以某种形式(例如链接、二维码、id信息),来分享给其他人,收到的人可以基于那种分享的内容去访问到对应的内容,同时访问时需要结合权限控制能力。
团队类似于一个文件夹,这一“文件夹”至少要有创建者和成员两种身份,文件夹应该包括有团队文档和团队信息等内容。
创建者应该有对团队进行调整的能力,例如管理成员、解散团队、设置文档权限。非创建者也应该有对应的加入、退出团队等功能。
这部分属于不强制的附加内容,完成的组会视情况增加分值。
消息通知即本系统中用户应该能接收消息或通知,它们范围没有具体定义,如下的内容均可作为消息来展示给用户(仅是示例):团队邀请信息、加入退出团队的结果、踢出团队时的提醒、文档被评论的提醒等等。
这部分的消息仅有这类系统消息,用户的私信功能是不要求实现的。
-
开发时应该主动借鉴现有的互联网平台来保证用户体验,不应该等待甲方提出具体需求,而是在不明确时去和甲方交流,尽可能让项目满足甲方的设想。
-
平台功能应该均能由用户在前端完成,不能有开发人员干涉,例如通过访问后端操作数据以实现成员、文档的管理,这类情况会直接视作不符合要求。
-
整体开发周期为10天,迭代分为两次,经费为两学分,期待大家的成果。