diff --git a/README.md b/README.md index 68c65b241b8818e8401677e5f6aeec2ddeb1d6fd..cd3483caf869078a60db4ee5cb2ac0f4e24e7430 100644 --- a/README.md +++ b/README.md @@ -1,117 +1,112 @@ - - # SeiChat ## 介绍 -SeiChat 是一个基于 Golang 实现的即时通讯系统,支持用户注册、登录、添加好友、创建和加入群组、发送消息等功能。适用于构建分布式实时通信场景。 +SeiChat 是一个基于 Golang 实现的即时通讯系统,支持用户注册、登录、添加好友、创建和加入群组以及发送消息等功能。该项目适用于希望快速搭建基础聊天功能的开发者。 ## 主要功能 -- 用户注册与登录 -- 好友添加与管理 -- 群组创建与加入 -- 单聊与群聊消息发送 -- 用户与群组信息管理 +- **用户管理**:注册、登录、更新和删除用户信息。 +- **好友管理**:添加好友、获取好友列表。 +- **群组管理**:创建群组、加入群组、获取群组列表。 +- **消息传递**:支持单聊消息的发送与接收。 +- **文件上传**:支持图片上传功能。 ## 技术栈 -- Golang -- GORM:用于数据库操作 -- Redis:用于消息缓存与持久化 -- Gin:用于构建 RESTful API -- JWT:用于身份认证 -- WebSocket:用于实时消息通信 +- **后端语言**:Go +- **Web 框架**:Gin +- **数据库**:MySQL(使用 GORM)、Redis +- **消息传递**:WebSocket +- **身份验证**:JWT +- **代码结构**:模块化设计,包含 handler、service、dao 等层 ## 软件架构 -项目采用典型的分层架构,包含以下模块: -- **handler**:提供 HTTP 接口,处理请求和响应。 -- **service**:业务逻辑层,实现具体功能。 -- **dao**:数据访问层,负责与数据库或 Redis 交互。 -- **models**:定义数据库模型。 -- **config**:配置文件管理。 -- **initialize**:初始化组件,如数据库、Redis、日志等。 -- **middleware**:中间件,如 JWT 认证。 -- **types**:定义请求参数结构体。 -- **biz**:业务通用逻辑,如错误码和返回结构。 +项目采用典型的分层架构: +- **Handler 层**:处理 HTTP 请求,调用 Service 层。 +- **Service 层**:实现业务逻辑,调用 DAO 层。 +- **DAO 层**:负责与数据库交互,执行 CRUD 操作。 +- **Model 层**:定义数据模型。 +- **Global 层**:全局变量和配置。 ## 安装教程 -1. 安装 Golang 环境(1.18+) -2. 安装并配置 MySQL 和 Redis -3. 获取项目代码: +1. **克隆项目** ```bash - git clone https://gitee.com/your-repo/SeiChat.git + git clone https://gitee.com/your-repo/seichat.git + cd seichat ``` -4. 安装依赖: + +2. **安装依赖** ```bash go mod tidy ``` -5. 配置数据库、Redis 及服务信息: - - 修改 `etc/im.yaml` 文件,填写 MySQL、Redis 等配置。 -6. 初始化数据库和 Redis: - - 确保数据库已创建,服务会自动进行 ORM 映射。 -7. 运行服务: + +3. **配置数据库** + - 修改 `etc/im.yaml` 文件中的 MySQL 和 Redis 配置。 + +4. **初始化数据库** + - 确保 MySQL 服务已启动,并根据配置创建数据库。 + +5. **运行项目** ```bash go run main.go ``` ## 接口文档 ### 用户模块 -- `POST /user/register`:用户注册 -- `POST /user/login`:用户登录 -- `GET /user/list`:获取用户列表 -- `POST /user/update`:更新用户信息 -- `POST /user/delete`:删除用户 +- **注册用户**:`POST /user/new` +- **用户登录**:`POST /user/login` +- **获取用户列表**:`GET /user/list` +- **更新用户信息**:`POST /user/update` +- **删除用户**:`POST /user/delete` ### 好友模块 -- `POST /relation/add_friend`:添加好友 -- `POST /relation/add_friend_by_name`:通过用户名添加好友 -- `GET /relation/friend_list`:获取好友列表 +- **添加好友**:`POST /relation/add` +- **通过用户名添加好友**:`POST /relation/add_by_name` +- **获取好友列表**:`GET /relation/friend_list/:userId` ### 群组模块 -- `POST /community/new_group`:创建新群组 -- `POST /community/join`:加入群组 -- `GET /community/list`:获取用户所在群组列表 +- **创建群组**:`POST /community/new` +- **加入群组**:`POST /community/join` +- **获取用户群组列表**:`GET /community/list/:ownerId` ### 消息模块 -- `GET /message/chat`:发送并存储消息 -- `GET /message/list`:获取历史消息列表 +- **发送消息**:`POST /message/send` +- **获取历史消息**:`GET /message/history` + +### 文件上传模块 +- **上传图片**:`POST /upload/image` ## 使用示例 -1. 注册新用户: +1. **注册用户** ```bash - curl -X POST http://localhost:8080/user/register -d '{"name":"testuser", "password":"testpass"}' + curl -X POST http://localhost:8080/user/new -d '{"name":"testuser", "password":"testpass"}' ``` -2. 用户登录: +2. **用户登录** ```bash curl -X POST http://localhost:8080/user/login -d '{"name":"testuser", "password":"testpass"}' ``` -3. 添加好友: - ```bash - curl -X POST http://localhost:8080/relation/add_friend -H "Authorization: Bearer " -d '{"userId":1, "targetId":2}' - ``` - -4. 创建群组: +3. **添加好友** ```bash - curl -X POST http://localhost:8080/community/new_group -H "Authorization: Bearer " -d '{"name":"testgroup"}' + curl -X POST http://localhost:8080/relation/add -d '{"userID":1, "targetID":2}' ``` -5. 发送消息: +4. **发送消息** ```bash - curl -X GET http://localhost:8080/message/chat?key=user_1_2 + curl -X POST http://localhost:8080/message/send -d '{"key":"user_1_to_user_2", "msg":"Hello, World!"}' ``` ## 贡献指南 -欢迎贡献代码,帮助完善 SeiChat。请遵循以下步骤: -1. Fork 项目 -2. 创建新分支 -3. 提交 Pull Request +欢迎贡献代码!请遵循以下步骤: +1. Fork 项目。 +2. 创建新分支 (`git checkout -b feature/new-feature`)。 +3. 提交更改 (`git commit -am 'Add some feature'`)。 +4. 推送分支 (`git push origin feature/new-feature`)。 +5. 提交 Pull Request。 ## Gitee 特性 -本项目托管于 Gitee,可利用 Gitee 提供的以下功能: -- 代码审查 -- Issue 跟踪 -- Pull Request 流程 -- Wiki 文档 +- 支持 Gitee 仓库集成。 +- 提供详细的项目文档和示例代码。 +- 支持在线查看和协作开发。 ## 许可证 -本项目基于 MIT 许可证发布。详情请查看仓库中的 LICENSE 文件。 \ No newline at end of file +本项目采用 MIT 许可证。详情请查看 LICENSE 文件。 \ No newline at end of file