一个功能完善的电子书管理与阅读平台,支持用户上传、管理、在线阅读电子书,并提供书签、收藏、阅读进度追踪等功能。
- Node.js + Express — Web 框架
- TypeScript — 类型安全的开发语言
- Prisma — ORM 框架(MongoDB 驱动)
- MongoDB — 数据库
- JWT — 用户认证
- Multer — 文件上传处理
- Zod — 数据校验
- bcryptjs — 密码加密
- Vue 3 — 前端框架
- Vite — 构建工具
- epub.js — 电子书在线阅读器
ebook-platform/
├── backend/ # 后端服务
│ ├── prisma/
│ │ └── schema.prisma # 数据库模型定义
│ ├── dist/ # 编译输出(已忽略)
│ ├── uploads/ # 用户上传文件(已忽略)
│ └── package.json
├── frontend/ # 前端构建产物
│ ├── index.html
│ └── assets/
└── .gitignore
| 模型 | 说明 |
|---|---|
| User | 用户(邮箱、用户名、头像) |
| Book | 电子书(标题、作者、封面、文件路径、类型) |
| ReadingProgress | 阅读进度(当前页码、CFI定位、进度百分比) |
| Collection | 收藏(按收藏夹分组) |
| Bookmark | 书签(页码、内容摘录、笔记) |
- 🔐 用户认证 — 注册、登录、JWT Token 鉴权
- 📤 电子书上传 — 支持 TXT、EPUB 等格式
- 📖 在线阅读 — 基于 epub.js 的沉浸式阅读体验
- 📊 阅读进度追踪 — 自动保存阅读位置和进度
- 🔖 书签管理 — 添加书签、记录笔记和摘录
- ⭐ 收藏系统 — 按收藏夹分组管理书籍
- 🏪 书城/商店 — 浏览和获取公开电子书
- 👤 用户中心 — 头像上传、个人信息管理
- 🔍 搜索功能 — 按书名、作者搜索
git clone https://gitee.com/tong-bei/ebook-platform.git
cd ebook-platformcd backend
npm install创建 .env 文件:
DATABASE_URL=mongodb+srv://user:password@cluster.mongodb.net/ebook-platform
JWT_SECRET=your-jwt-secret
PORT=3000初始化数据库:
npx prisma generate
npx prisma db push启动开发服务:
npm run dev生产环境:
npm run build
npm start前端已构建为静态文件,可通过 Nginx 等服务器直接托管 frontend/ 目录。
如需开发,请确保使用 Vue 3 + Vite 构建。
MIT