本系统代码均为个人原创,若在网上发表请指明出处。本系统开源目的只是为了供技术爱好者学习、交流。如果你觉得本项目不错,麻烦点个:star:(star),这也会激励我持续维护本项目。
前端主要技术栈: React、TypeScript、WebSocket API、semi-ui、axios、immer、sass等。
后端主要技术栈: Node.js、Koa、mysql2、ws、koa-router、@koa/multer、jsonwebtoken、koa-bodyparser等。
- 注册登陆模块: 用户注册及登陆,token签发、认证等。
- 个人信息模块: 个人信息的增删查改等。
- 联系人管理模: 添加好友、查看添加好友记录、修改好友备注、查看好友信息等。
- 群聊管理模块: 实现入群申请、邀请好友入群、入群申请处理、修改群公告、查看群聊信息等。
- 聊天模块: 实现单聊/群聊,支持文字、图片、emoji表情。
- 朋友圈模块: 支持发表动态,查看好友动态,对动态进行点赞、评论。
聊天 | 发送emojo | 个人信息 |
---|---|---|
添加联系人 | 申请好友表单 | 添加好友记录 |
---|---|---|
入群记录 | 联系人信息 | 发表动态 |
---|---|---|
动态列表 | 动态评论 | 动态点赞 |
---|---|---|
- 创建数据库:
create database chat_system;
- 连接数据库:
use chat_system
; - 创建数据表: 创建本系统各表的SQL详见:point_right:各表SQL语句,copy到终端中执行即可。
- 创建系统配置文件:
进入到本系统目录执行
touch server/.env
- 配置系统配置文件: 将如下代码copy到server/.env中
# 服务端口号
SERVER_PORT=8000
# 系统图片保存路径,绝对路径。
IMG_PATH=/Users/chat_system/test
# mysql host配置
MYSQL_LOCALHOST=localhost
# mysql 端口配置
MYSQL_PROT=3306
# mysql 连接身份
MYSQL_USER=root
# mysql 连接密码,在这里配置上自己mysql的密码
MYSQL_PASSWORD=password
# 数据库
MYSQL_DATABASE=chat_system
# 连接池配置
MYSQL_CONNECTION_LIMIT=10
MYSQL_QUEUE_LIMIT=0
- 在系统根目录下安装依赖:
npm run post-install
- 启动项目:
npm start
至此,本项目已启动成功,你可以开始体验本项目,或对本项目进行二次开发。
本人会在工作/学习之余持续对本项目进行维护、迭代
由于个人精力有限,所以本人只对项目中的核心case进行过较详细测试,如果你在本项目遇到任何问题,欢迎大家提Issue,或者直接修复后给我提Merge Request。
欢迎更多热爱技术、热爱开源的优秀小伙伴一起加入本项目,也欢迎大家给本项目提Merge Request。
在提Issues时请尽可能简洁、清楚的描述问题,和如何进行场景复现。这能使开发者快速定位、解决问题。
欢迎大家入群(QQ)交流。