# note-share
**Repository Path**: lthshuchen/note-share
## Basic Information
- **Project Name**: note-share
- **Description**: 使用django-rest-framework框架编写的笔记分享与用户权限管理系统
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-04-13
- **Last Updated**: 2025-04-18
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
#
# 常大笔记共享平台
## 项目介绍
1. 基于vue3 + django rest framework + ts + element-plus + sqlite3 + vite 的**markdown**笔记平台
2. 项目已经提交到gitee平台,链接https://gitee.com/lthshuchen/note-share.git
## 功能定位
1. **个人笔记** 和 **大学内部知识分享**
2. 用户分为**普通用户**与**管理员用户**两种角色
3. 用户角色可以创建**笔记和笔记分组**
4. 管理员可以看到全部用户的笔记和笔记分组,并可以为其他用户分配**笔记和笔记分组**权限
5. 用户只可以看到管理员授权的**笔记和笔记分组**
## 核心技术
- 中间件
- JWT鉴权
- 多级权限管理
- 自定义用户模型(不采用drf自带的用户模型)
## 核心功能模块
#### **(1)用户与权限系统**
- **角色区分**:
- 普通用户:管理自己的笔记和分组,可共享给其他用户
- 管理员:查看/管理全部内容,增删改查其他用户
- **权限控制**:
- 笔记级权限(直接授权特定用户)
- 分组级权限(授权整个分组)
- 自动关联创建者权限(创建笔记/分组时自动授权自己)
#### **(2)笔记管理**
- **基础功能**:
- 富文本笔记(标题+内容)
- 分组归类(笔记可属于多个分组)
- 全文搜索(标题/内容/关联用户)
- **协作功能**:
- 笔记共享(通过用户或分组授权)
- 修改记录(可通过`updated_at`追踪)
#### **(3)数据统计**
- **全局看板**:
- 笔记总数、分组总数
- 笔记创建趋势折线图(按日/月/年)
- 分组分布扇形图
- **用户维度**:
- 个人活跃度(`last_active_at`)
- 贡献统计(创建笔记数)
## 项目亮点
1.**多级权限管理**
- 笔记级权限
- 分组级权限
- 自关联权限
2.**用户账号的激活与封禁**
3.**活跃用户的实时判断与统计**
4.**第三方组件库的集成**
- 富文本的集成,支持多种格式的数据编辑
- 统计图表的集成,支持条件筛选
6.**多种页面布局、多种数据展示样式,可自由切换**
7.**功能完善**
- 全文模糊搜索
- 分页展示
- 下拉框筛选
- 面包屑导航
- 登录页面"记住我"功能(将登录表单中的用户名存在缓存中)
8.**安全设计**
- 短时效Access Token + 长时效Refresh Token
- 自动令牌刷新机制(`ROTATE_REFRESH_TOKENS`)
9.**性能优化**
- 分页查询
- 智能预加载
10.**可扩展性好**
- 独立序列化器
- 分离的视图集
## 未来计划
1.**高级功能**
- 笔记版本历史(使用`django-reversion`)
- 实时协作(集成WebSocket)
2.**生态扩展**
- 移动端APP(基于REST API)
- 第三方应用接入(OAuth2.0)
3.**安全增强**
- 操作审计日志
- 支持更多的敏感内容加密存储
## 开发环境
```shell
python 3.12
sqlite 3
django 5.1.4
node v22.12.0
```
## 部署安装
1. 拉取代码
```shell
git clone https://gitee.com/lthshuchen/note-share.git
```
2. 初始化后端(安装依赖+迁移数据库)
```shell
cd beenote/server
pip3 install -r requirements.txt
python3 manage.py makemigrations
python3 manage.py migrate
```
3. 启动后端项目
```shell
python3 manage.py runserver
```
## 后台地址
```url
localhost:8000/admin
```


4.启动前端项目
```conf
npm run dev
```