# ChicTalk
**Repository Path**: tredy6t/chic-talk
## Basic Information
- **Project Name**: ChicTalk
- **Description**: QtQucik打造仿QQ的即时通讯软件
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2025-07-11
- **Last Updated**: 2025-07-11
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# ChicTalk
#### 介绍
使用QtQuick构建跨平台桌面即时通讯软件(模仿QQNT ui设计)
#### 功能模块
1. ###### 登陆/注册
支持使用邮箱注册Chic账号,实现邮箱验证码的接发与过期检查;
注册完成后使用本地Token免密登陆。
2. ###### 好友/群组
支持好友/群组信息检索,发送好友/入群申请;
可以创建群聊并编辑群资料。
3. ###### 多媒介聊天
支持 文字/Emoji表情/图片/语音/文件 多种媒介聊天。
4. ###### 用户个性化
可以自定义昵称、签名、选择静态头像,同时可以查看好友/群组的个性化内容。
5. ###### 数据本地化
本地用二进制文件存储所有的聊天数据、用户设置等。
6. ###### 程序设置
提供一个设置菜单来满足,用户的使用习惯,设置文件接收位置等。(目前实现较少)
待开发中的功能:
1. 自定义头像
2. 通讯录管理
3. 聊天记录云同步
4. 更多的程序自定义设置(主题、隐私权限、消息接收设置)
5. 图片编辑器与视频播放器
6. 音视频通话
...
#### 项目目录
- **ChicServer_beta**: Linux服务器程序目录
- **ChicTalk_beta**: QtQuick客户端
- **mprpc**: RPC通讯框架
- **快速体验**: ChicTalk客户端解压缩版本,可以在Windows上运行,基于一台小型云服务器
#### 软件架构
服务器的通讯模块主要基于在网上学习的简易RPC通讯框架mprpc
提供了异步日志系统每天写入关键信息到本地
使用protobuf提供的服务规范定义了绝大部分服务,其中文件传输使用cpp-httplib实现更稳定的传输环境
客户端属于QtQuick + C++的开发模式,所有可视化界面全部使用QML提供(除了一些系统QWidget如文件对话框),绝大部分程序数据管理、功能函数与网络调用使用C++实现,
这种视图交给QML,数据与控制交给C++的方式类似于MVC模式
C++使用Qt的信号与槽机制和属性系统与QML通信,QML只需要关注界面元素的编写,极大简化了ui的开发
#### 项目环境
**ChicServer 需要的环境**:
1. g++
2. muduo 网络库
3. protobuf-3.11.0(RPC框架使用了该版本)
4. zookeeper-3.4.10(同上)
5. MySQL
6. OpenSSL
7. cpp-httplib开源库
**ChicTalk 需要的环境**:
1. QtQuick
2. protobuf-3.11.0
3. zookeeper-3.4.10(更高版本均可)
4. Fluent QML UI 库
5. MSVC 2019 64-bit
6. cpp-httplib开源库
#### 参与贡献
杨