# 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。
```bash
vue create frontend
```
用前端仓库中的src文件夹替换frontend文件夹下的src文件夹。
将后端仓库中的backend文件夹复制到项目文件夹下。
打开两个终端窗口,分别进入前端frontend文件夹和后端backend文件夹下。
**注意⚠️:下面请根据输入命令后的报错信息安装相应的组件。**
在frontend的终端中输入命令:
```bash
npm run server
```
在backend的终端中输入命令:
```bash
flask run
```
如果前后端均能够正常运行,则项目移植成功,否则请检查是否缺少必要的组件。
# 打开方法
## 本地后端方法
打开两个终端窗口,分别进入前端frontend文件夹和后端backend文件夹下。
**注意⚠️:下面请根据输入命令后的报错信息安装相应的组件。**
在frontend的终端中输入命令:
```bash
npm run server
```
在backend的终端中输入命令:
```bash
flask run
```
在浏览器中输入网址:
http://localhost:8080
即可进入石墨烯文档
## 服务器后端方法
打开终端窗口,进入后端backend文件夹下。
**注意⚠️:下面请根据输入命令后的报错信息安装相应的组件。**
在backend的终端中输入命令:
```bash
flask run
```
在浏览器中输入项目地址(暂未公布),即可进入石墨烯文档。
# 用户手册
## 编辑界面
编辑界面分为两个区域:编辑区和左侧边栏。

### 左侧边栏
左侧边栏有评论、历史、分享和权限管理四个板块。
#### 评论
在评论区,可以发表对于当前文档的评论。
若是当前用户具有评论权限,则可以进行评论。
在上方文本框中键入评论内容,点击右侧的评论按钮,就可以发送评论。
已经发送的评论可以在评论区下方查看,已发表的评论按照发表时间的顺序依次排列。

#### 历史
创建文档和修改文档会被按照时间顺序记录。
如果当前用户对于当前文档有查看的权限,则可以查看历史记录。
#### 分享
点击分享板块可以将文档分享给站内其他用户。
如果当前用户有对于当前文档的分享权限,则可以进行分享。

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

#### 文档标题
标题区展示了文档的标题和类别。比如图中的文档标题为《文档展示》。
#### 正在编辑
正在编辑区显示了正在编辑当前文档的用户的头像。
#### 文档编辑区
文档编辑采用了[mavonEditor](https://github.com/hinesboy/mavonEditor),支持富文本编辑和MarkDown,能够同时在文档中插入图片和文字。
**mavonEditor**是一种基于Vue的markdown编辑器。
具体文档请参见https://github.com/hinesboy/mavonEditor。
编辑区左侧为输入区,右侧为预览区。
第一行:

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

标号、链接、图片、代码段、表格、回撤、重做、删除、保存
# 项目原始需求
## “金刚石文档”内容描述
##### ——北航日光主机哈里斯公司
### 整体概述
考虑疫情的影响,本司决定开发一个超越“石墨文档”的代号为“金刚石文档”的在线文档协作平台,当然具体名字各组随意取即可,金刚石只是代号,最终展示形式为PC端的Web网站。
有关项目,公司决定打造一个不同的协作平台,专注于一点,不需要在共享时实现类似腾讯文档的实时同步,而只要求能够协作即可,当然还需要有辅助功能来支持,预计的功能可分为以下几方面:基础功能、个人工作台、文档有关处理、团队协作、消息通知系统。
### 各部分描述
#### 1.基础功能
项目的最终展现形式为PC的web网站,所以基础功能即为了使用协作能力需要具备的基础:注册、登录、个人信息的查看、完善与修改功能。
#### 2.个人工作台
用户登录后应该能使用平台的功能,个人工作台便是访问文档的起始点。
在工作台用户应该至少能基于以下几种分类来访问内容:最近浏览的文档、收藏的文档、自己创建的文档以及加入的团队(这里访问加入的团队后,用户也应该能根据情况看到团队文档和信息等内容)。
并且应该有回收站的存在,用于在一定情况下恢复删除的文档。
#### 3.文档有关处理
现在的共享文档功能十分全面,而本司的“金刚石文档”,有如金刚石的结构一样,非常的专一,只要求实现doc文档这一种形式的共享。(并且只是内容,不需要存储实际的文件,这里可参考腾讯文档)
针对文档,需要有创建、基于模板创建、修改、评论、分享等功能。
**文档的创建修改:**文档应该最少有标题、内容、文档基础信息等内容,在内容编辑上推荐并且仅允许大家使用富文本编辑器之类的模板,以节省经费。
**权限:**文档应该有权限的设置和调整功能,不同的权限在查看、讨论、修改、分享等时候应该有区别,并且需要考虑到团队的存在。
**评论:**其他人或作者需要能够对特定文档增加评论,以作为建议或意见。
**分享:**文档或者其他内容应该能以某种形式(例如链接、二维码、id信息),来分享给其他人,收到的人可以基于那种分享的内容去访问到对应的内容,同时访问时需要结合权限控制能力。
#### 4.团队协作
团队类似于一个文件夹,这一“文件夹”至少要有创建者和成员两种身份,文件夹应该包括有团队文档和团队信息等内容。
创建者应该有对团队进行调整的能力,例如管理成员、解散团队、设置文档权限。非创建者也应该有对应的加入、退出团队等功能。
#### 5.消�
石墨烯文档后端代码.zip
需积分: 0 65 浏览量
更新于2024-03-03
收藏 650KB ZIP 举报
石墨烯文档后端代码.zip 文件是一个包含石墨烯文档后端源代码的压缩包,其主目录为 "graphene-doc-server-master"。这通常意味着它是一个与基于石墨烯的文档服务相关的项目,石墨烯(Graphene)是Python中用于构建GraphQL API的库。GraphQL是一种强大的查询语言,它允许客户端按需获取数据,提高了API的效率和灵活性。
在深入探讨这些源代码之前,让我们先了解一下石墨烯和GraphQL的基础知识:
1. **石墨烯(Graphene)**:
石墨烯是Python的一个库,它使得在Flask或Django等Web框架中构建GraphQL API变得简单。它提供了类型系统,允许开发者定义数据模型,并且提供了执行和解析GraphQL查询的工具。
2. **GraphQL**:
GraphQL是由Facebook开发的一种API查询语言,它的主要优势在于避免了过度和不足的获取数据问题。通过指定所需字段,客户端可以精确控制获取的数据量。此外,GraphQL还提供了一个强大的查询能力,允许查询多个数据资源在一个请求中。
现在,我们转向 "graphene-doc-server-master" 这个目录,我们可以推测这是一个为石墨烯文档服务搭建的后端服务器。以下是一些可能包含在这个项目中的关键组件和概念:
1. **schema**:
GraphQL服务的核心是schema,它定义了客户端可以查询和变更的数据类型、对象以及它们之间的关系。在石墨烯中,schema是通过`graphene.Schema`类创建的,包含了所有可用的类型和根查询/突变。
2. **types**:
在石墨烯中,你需要定义GraphQL类型的映射,这可以是基本类型(如Int,String),自定义对象类型,或者更复杂的接口和联合类型。这些类型通常对应于数据库模型或业务逻辑中的实体。
3. **resolvers**:
解析器是GraphQL查询执行过程中的关键部分,它们处理实际的数据获取和操作。当客户端请求某个字段时,对应的resolver会被调用,返回所需的数据。
4. **queries and mutations**:
GraphQL API有两个主要操作:queries(查询)用于获取数据,mutations(突变)用于修改数据。在石墨烯中,你可以定义这些操作的函数,并将它们与GraphQL类型关联起来。
5. **middleware**:
如果项目中包含了中间件,那么这可能是为了实现身份验证、日志记录、性能追踪等功能。中间件是在请求处理流程中插入的一段代码,可以修改请求或响应。
6. **数据库集成**:
后端代码可能通过ORM(对象关系映射)如SQLAlchemy与数据库交互,或者直接使用低级别SQL语句。数据模型和数据库操作通常会封装在单独的模块或文件中。
7. **设置和配置**:
配置文件(如settings.py)可能包含服务器的环境变量、数据库连接信息、日志配置等。
8. **测试**:
一个完整的项目可能包括单元测试和集成测试,确保代码的正确性和稳定性。测试框架如pytest可能会被用来编写和运行这些测试。
9. **部署和运行**:
项目可能包含一个启动脚本(如run.py或manage.py),用于在开发或生产环境中启动服务。此外,可能还会有关于如何部署到云服务(如Heroku、AWS等)的说明。
要详细了解这个项目,你需要解压文件并查看源代码,包括读取README.md(如果有的话)以获取项目的详细说明和安装/运行指南。同时,通过研究代码结构和各个文件的作用,你可以更好地理解石墨烯文档后端的工作原理和实现细节。

日刷百题
- 粉丝: 6844
最新资源
- 电力系统综合自动化系统.doc
- Cultural-Change-using-Docker.pptx
- (源码)基于mbed开发框架的Nucleo蓝牙模块温湿度控制系统.zip
- 模拟电路课件(计算机专业)6-电子电路-12概要.ppt
- 在计算机教学中激发学生创造力的方法研究.docx
- 单片机的电子密码锁的方案设计大学课程方案设计.doc
- 最新互联网区块链科技商业创业计划书PPTppt模板:.pptx
- 计算机取证技术的研究与探讨.docx
- 移动互联网企业-谷歌.docx
- 电力自动化系统中电子信息技术的有效运用分析.docx
- 配网自动化运行管理中的问题分析与对策.docx
- (源码)基于Python和PyTorch的烂番茄电影情感分类项目.zip
- jsp新闻发布系统设计方案参考文档.doc
- 网络程序开发基础知识.ppt
- 金蝶WebService总账接口说明.doc
- 互联网思维下县级融媒体中心建设创新研究.docx