• 💂 个人网站: 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界面

首页

列表页

img_556

文章详情页

文档上传页

搜索结果页

文章资讯

管理后台

小程序和APP

img_563

img_564


开源地址&使用手册

点击下方的【IT学习日记】回复【资源】领取!

如果这篇文章对您有帮助,请一定帮我点个 “关注”“点赞”,这对我非常重要。我将会继续推荐更多优质项目和新闻。

写在最后

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

在这里插入图片描述

Logo

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

更多推荐