# 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 # logo # 常大笔记共享平台 ## 项目介绍 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 ``` ![后台1](C:\Users\21861\Desktop\beenote\README.assets\后台1.png) ![后台2](C:\Users\21861\Desktop\beenote\README.assets\后台2.png) 4.启动前端项目 ```conf npm run dev ```