https://github.com/null-object-0000/newbie-docs
基于 Vue 3.0 的开源知识库(文档)管理系统
https://github.com/null-object-0000/newbie-docs
arco-design codex-editor java spring-boot typescript vue3 wangeditor5
Last synced: 11 months ago
JSON representation
基于 Vue 3.0 的开源知识库(文档)管理系统
- Host: GitHub
- URL: https://github.com/null-object-0000/newbie-docs
- Owner: null-object-0000
- License: apache-2.0
- Created: 2023-07-10T06:27:03.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-08-23T12:02:47.000Z (almost 3 years ago)
- Last Synced: 2023-08-23T12:11:06.430Z (almost 3 years ago)
- Topics: arco-design, codex-editor, java, spring-boot, typescript, vue3, wangeditor5
- Language: Vue
- Homepage: https://newbie-docs.zeabur.app
- Size: 2.22 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# newbie-docs
基于 Vue 3.0 的开源知识库(文档)管理系统,详细 [业务逻辑](./BusinessLogic.md) 介绍以及 [常见问题](./Question.md) 请见对应文档。
## 主要功能
- :ledger: 像书一样的知识库
- :gift: 多样的在线编辑器
- :running: 便捷的私有化部署
- :blush: 个人和团队都适用
## 开发计划
### v1.0.0
- [x] 基于 `Vue 3.0` 完成 [codex.docs](https://github.com/codex-team/codex.docs) 所有能力
- [ ] 支持多样的在线编辑器
- [x] 基于 [wangEditor 5](https://www.wangeditor.com/) 实现富文本编辑器
- [ ] 基于 [Editor.js](https://github.com/codex-team/editor.js) 实现块式编辑器
- [x] 基于 [mavonEditor](https://github.com/hinesboy/mavonEditor) 实现 Markdown 编辑器
- [x] 支持通过知识库管理文档,参考 [语雀](https://www.yuque.com/dashboard)
- [x] 实现基于 `LocalStorage` 的客户端存储用于演示
- [x] 实现基于 `Amazon S3` 存储的 `Java` RESTful API 服务端
- [ ] 支持基于 OAuth2 的第三方登录 + 知识库、文档的权限管理
- [x] 支持通过 Docker 部署
> `LocalStorage` 存储实现不支持权限管理能力,此时默认所有人都拥有所有知识库、文档的管理员权限
### v2.0.0
- [ ] 基于 `YJS` 实现文档协同编辑
- [ ] 完成移动端适配 + 暗黑模式
- [ ] 接入 `AIGC` 辅助文档编写
### v3.0.0
- [ ] 支持自定义主题样式
- [ ] 支持更丰富的在线编辑器
- [ ] 基于 [Luckysheet](https://github.com/dream-num/Luckysheet) 的表格编辑能力
- [ ] 文档的多版本管理 + 支持从各平台导入文档
- [ ] 实现基于 `Amazon S3` 存储的 多语言的 RESTful API 服务端
- [ ] 基于 `Node.js` 的 RESTful API 服务端
## 开发部署
### 本地开发
#### website
- node 18
- pnpm 8.6
``` bash
# 环境配置(windows)
copy .\newbie-docs-website\.env .\newbie-docs-website\.env.local
# 本地运行
pnpm install
pnpm website:dev
# 代码提交
npm install -g commitizen
pnpm run website:commit
# 本地构建
pnpm website:build
```
#### java-server
- jdk 17
- maven 3.9
``` bash
# 环境配置(windows)
cd .\newbie-docs-server-java\
copy .\src\main\resources\application.properties .\src\main\resources\application-local.properties
# 本地运行(windows)
mvn clean package -Dmaven.test.skip=true
java -jar -Dspring.profiles.active=local .\target\newbie-docs-server-java.jar
```
### Codespaces(linux)
``` bash
nvm install 18
nvm use 18
npm install -g npm
npm install -g pnpm
cp ./newbie-docs-website/.env ./newbie-docs-website/.env.local
sdk install java 17.0.8-ms -y
sdk use java 17.0.8-ms
cd newbie-docs-server-java/
cp src/main/resources/application.properties src/main/resources/application-local.properties
mvn clean package -Dmaven.test.skip=true
java -jar -Dspring.profiles.active=local target/newbie-docs-server-java.jar
```
### Docker 部署
#### java-server + website
``` bash
# 构建镜像
docker build -t newbie-docs:latest .
# 运行容器
docker run -d -p 8080:80 --name newbie-docs newbie-docs:latest
```
#### nginx + website
``` bash
# 构建镜像
cd .\newbie-docs-website\
docker build -t newbie-docs:latest .
# 运行容器
docker run -d -p 8080:80 --name newbie-docs newbie-docs:latest
```
## 技术栈
### website
- [Vue 3.0](https://cn.vuejs.org/) + [TypeScript](https://www.typescriptlang.org/) + [Vite](https://cn.vitejs.dev/) + [Pinia](https://pinia.vuejs.org/zh/) + [Vue Router](https://next.router.vuejs.org/zh/)
- [Axios](https://axios-http.com/zh/)
- [VueUse](https://vueuse.org/guide/)
- [Arco Design](https://arco.design/)
- [Editor.js](https://github.com/codex-team/editor.js)
- [wangEditor 5](https://www.wangeditor.com/)
- [YJS](https://github.com/yjs/yjs)
### server
- [Spring Boot](https://spring.io/projects/spring-boot) + [Lombok](https://projectlombok.org/) + [MyBatis](https://mybatis.org/mybatis-3/zh/index.html)
- [HuTool](https://hutool.cn/)
- [FastJson 2.0](https://alibaba.github.io/fastjson2/)
### database
- [MySQL](https://www.mysql.com/cn/)
- [Amazon S3](https://aws.amazon.com/cn/s3/)