1比1还原百度文库!一款美观大气、功能全面的开源文库系统,支持所有主流文件格式预览和管理
- 💂 个人网站: IT知识小屋
- 🤟 版权: 本文由【IT学习日记】原创、在CSDN首发、需要转载请联系博主
- 💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦
简介
本项目是一款1比1仿百度文库的开源在线文库系统,全面支持TXT、PDF、EPUB、MOBI、Office等多种文档格式的上传与在线预览、文档管理、搜索、下载等功能。不依赖任何第三方收费组件,系统采用Go语言构建后端,Nuxt2 + Element-UI实现前端,提供高性能、高并发、高拓展的文库系统。
系统具备具出色的横向扩展能力,天然支持全文检索和分词机制,开发者可以快速上手,轻松实现二次开发和功能扩展。无论是企业内部资料管理,还是中小团队搭建文库平台,该系统都是一个不错的选择。
架构
项目结构
.
├── LICENSE # 开源协议
├── Makefile # 编译脚本
├── README.md # 项目说明
├── api # proto api, API协议定义
├── app.example.toml # 配置文件示例,需要复制为 app.toml
├── biz # 业务逻辑层,主要处理业务逻辑,实现api接口
├── cmd # 命令行工具
├── cache # 缓存相关
├── conf # 配置定义
├── dict # 结巴分词字典,用于给文档自动进行分词
├── docs # API文档等
├── documents # 用户上传的文档存储目录
├── go.mod # go依赖管理
├── go.sum # go依赖管理
├── main.go # 项目入口
├── middleware # 中间件
├── model # 数据库模型,使用gorm对数据库进行操作
├── release # 版本发布生成的版本会放到这里
├── service # 服务层,衔接cmd与biz
├── sitemap # 站点地图
├── third_party # 第三方依赖,主要是proto文件
├── uploads # 文档文件之外的其他文件存储目录
└── util # 工具函数
技术栈
前端:nuxt2 + element-ui
后端:Golang :gin + gRPC + GORM
数据库:MySQL
功能列表
文档管理
-
支持多种格式:TXT、PDF、EPUB、MOBI、Office 等常见文档格式
-
在线预览:无需下载即可在浏览器端直接阅读文档
-
文档上传:支持用户上传并分类管理文档
-
文档下载:可设置是否允许下载原文件
-
文档转码:上传后自动转换为可在线阅读的格式
搜索与检索
-
全文搜索:基于分词机制,支持关键字全文检索
-
搜索结果高亮:快速定位检索词在文档中的位置
-
分类与标签:通过分类、标签进行筛选和精确定位
用户系统
-
用户注册与登录:支持账号注册、登录功能
-
用户中心:查看个人资料、修改信息
-
权限管理:区分普通用户与管理员权限
-
上传权限控制:可设定用户是否具有文档上传权限
后台管理
-
用户管理:管理员可对用户进行查看、编辑、封禁等操作
-
文档管理:审核、删除违规文档,调整分类
-
分类与标签管理:灵活配置文档分类与标签体系
-
系统配置:站点信息、上传规则、权限控制等全局设置
其他特色
-
离线任务:上传文档后的处理任务支持后台异步完成
-
多端适配:PC 与移动端浏览器均可流畅访问
-
开源友好:接口统一,二次开发与扩展便利
UI界面
首页

列表页


文章详情页

文档上传页

搜索结果页

文章资讯

管理后台

小程序和APP



开源地址&使用手册
点击下方的【IT学习日记】回复【资源】领取!
如果这篇文章对您有帮助,请一定帮我点个 “关注” 和 “点赞”,这对我非常重要。我将会继续推荐更多优质项目和新闻。

写在最后
1000+优质开源项目更新进度:299/1000。如需更多类型优质项目推荐,请在文章后留言。

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)