立项原因
1.企业内部通信需求
2.实时协作需求
3.定制化通信平台需求
行业场景
该系统适合各企业内部通信,满足企业对自主信息的安全,可控,合规性要求。
业务背景
统实现了基于JWT的认证机制和基于角色的权限控制,满足对通信内容和数据的安全保护需求。
管理员模块提供了完整的用户、角色、权限、菜单管理功能,满足对系统的集中管理需求。
采用NestJS的模块化架构,易于添加新功能和扩展现有功能,满足业务发展的需求。
通过WebSocket实现实时消息功能,满足即时通信的需求。
系统提供了完整的用户管理和权限控制,满足行业合规性要求,如金融行业的监管要求。
1. 管理后台模块
1.1 认证管理 (Auth)
1.2 用户管理 (User)
1.3 角色管理 (Role)
1.4 权限管理 (Permission)
1.5 菜单管理 (Menu)
1.6 文件管理 (File)
1.7 客户端用户管理 (Client User)
2. 客户端模块 (Client Module)
2.1 聊天管理 (Chat)
2.2 消息管理 (Message)
2.3 好友管理 (Friend)
2.3客户端文件管理(File)
3. 系统配置模块
3.1 配置管理 (Config)
3.2 安全模块
4. 技术特点
- 模块化架构 :采用NestJS的模块化设计,将功能划分为清晰的模块
- RESTful API :提供标准的RESTful API接口
- JWT认证 :使用JWT进行用户认证
- 权限控制 :实现了基于角色和权限的访问控制
- 文件上传 :支持文件上传和断点续传
- 实时通信 :通过WebSocket实现实时消息推送
- 数据库操作 :使用TypeORM进行数据库操作
- Swagger文档 :自动生成API文档
- 错误处理 :统一的错误处理机制
- 分页查询 :支持统一的分页查询格式
该项目是一个功能完整的聊天应用后端系统,支持实时消息、文件传输、好友管理等核心功能,同时提供了完善的后台管理功能,满足企业级应用的需求。
业务流程
1. 用户认证流程 :
- 后台用户通过认证模块登录获取令牌
- 客户端用户通过认证模块登录获取令牌
- 使用令牌访问受保护的API
2. 消息发送流程 :
- 用户发送消息到消息模块
- 消息模块保存消息到数据库
- 通过WebSocket推送给接收方
3. 文件上传流程 :
- 用户上传文件或文件片段
- 文件服务保存文件
我负责全部开发任务。后端使用了nestjs、mysql、typeorm、winston。后台使用react
、axios、tailwind、shadcn。客户端使用electron、winston、vue、dexie、naive-ui、pinia。
后端基于NestJS 框架构建,采用 模块化分层架构 ,整体结构清晰,职责明确。实现亮点:高度模块化、配置分离、权限控制细粒度、文件断点续传、实时通信、文档集成。实现难点:实时推送消息、断点续传、复杂的权限、安全性、可扩展性。
后台基于react使用shadcn实现可定制化的组件,UI可控性强。实现上的亮点:清晰的目录结构、组件化开发、API 接口封装、TypeScript 集成。实现上的难点:状态管理与路由守卫的集成、UI 组件库的集成与定制、页面结构的组织与优化。
客户端是基于 Electron 框架的桌面聊天应用,采用了模块化、服务导向的架构设计,分为主进程层、分为服务层、IPC通信层、预加载层、渲染层、预加载层。实现亮点:服务管理机制、窗口管理优化、IPC 通信增强、代码质量与可维护性。实现难点:服务依赖管理、IPC 通信性能、内存泄漏防护、跨平台兼容性、启动性能优化。针对重要模块,记录本地日志,方便后续更近。
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!

下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论