A web chat application. Vue + node(koa2) + MongoDB + socket.io
WeCat
介绍
- 基于Vue.js全家桶 + WebSocket + Node.js + Koa2 + MongoDB的即时聊天项目
- 功能部分参考微信,附加上一些有意思的功能。项目代码注释非常详细,是学习Vue、Node.js、koa一个不错的全栈入门项目。
- 项目前后端和部署独立完成,各种交互以及各种业务逻辑功能上有不完善的地方欢迎提出😄
项目展示
1. 登录

2. 注册

3. 找回密码

4. 注册成功,选择头像

5. 主面板

6. 添加好友

7. 好友信息面板

8. 发送信息和文件

9. 多功能面板,发送表情

10. 个性化设置菜单

11. 管理员页,用户信息

12. 查询所有聊天记录

13. 聊天记录详情

14. API 文档

目录结构
- server 是服务器
- public 是静态文件
- db 是MongoDB导出备份
- src 是项目文件夹
安装教程
- 克隆项目
git clone https://github.com/imzusheng/Wecat.git
- cd 项目根目录,安装依赖
npm install
- 运行服务
npm run serve
- cd ./server,再安装服务器依赖
npm install
- 导入数据库
mongorestore -d wecat ./db
- 运行服务器
npm run dev
测试账号
userID:[email protected]
password:a123456
TODO
- [x] 登录
- [x] 防止重复登录
- [x] 最近登录时间
- [x] 最近登录地点(省-市-区)
- [x] 注册(邮箱验证)
- [x] 找回密码(邮箱验证)
- [x] 选择用户头像
- [x] 登出
- [x] 好友点对点聊天
- [x] ws心跳连接与掉线重连
- [x] 好友上线和下线提示
- [x] 加好友及验证好友请求
- [x] 好友请求通知
- [x] 未读消息提示
- [x] 搜索用户
- [x] 用户个性化配置
- [x] 聊天记录懒加载
- [x] 好友输入状态实时更新
- [x] 网站标题实时显示未读消息条数
- [x] 最近聊天的好友置顶
- [x] 后台管理
- [x] 聊天图片与文件上传(分片上传)
- [x] 聊天图片与文件预览和下载
- [ ] 群聊
- [x] 用户资料卡
- [ ] 删除好友
- [ ] 创建群
- [ ] 群资料卡
- [ ] 加群
- [ ] 退群
相关技术栈
- VueCli 3
- Vuex
- Node.js
- Element-ui
- axios
- MongoDB
- koa2
- WebSocket
- ws
笔记与总结
关于