# schat-frontend **Repository Path**: suwenhao/schat-frontend ## Basic Information - **Project Name**: schat-frontend - **Description**: chat IM前端,基于vue3.0开发,支持单聊群聊功能,支持添加好友添加群功能,支持语音视频图片文字消息,支持多语言设置,支持主题切换。后端使用nestjs开发,socket做消息即时推送。 - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2022-12-09 - **Last Updated**: 2024-01-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: IM, 即时聊天, vue3, Nestjs, MongoDB ## README # schat-frontend ## 介绍 仿 telegram IM即时通讯系统。使用技术栈Vue3.0+Vant+socket.io+Vue-i18n+虚拟滚动+音视频播放等。后端使用nestjs+mongodb+redis+socket.io等。 server在这里 https://gitee.com/suwenhao/schat-nestjs-server ## 软件说明 1. 支持PC和H5端自适应功能,支持主题颜色更改,支持多语言设置。 2. 支持私聊群聊功能,支持文字消息发送,图片消息发送,视频消息发送,语音音频消息发送,文件发送。实时消息socket推送接收。消息通过redis推送到队列后存储到mongodb数据库中。 3. 支持搜索添加用户为好友,支持新建群聊。 4. 完成功能 - 登录注册 - 主页 - 主题切换,多语言切换,添加联系人,通讯录,添加群聊 - 个人资料更改 - 头像,对话设置,通知设置,个人资料,邮箱验证,google二次验证,隐私设置-上线时间显示设置,查看头像显示设置,通过账号昵称添加我设置,添加好友验证设置,添加我为好友验证设置,添加为群主设置等等。 - 私聊,群聊 - 聊天置顶,聊天免消息打扰,好友设置黑名单,语音发送,文字图片视频音频文件消息发送,视频播放,音频播放,文件下载,表情发送,消息换行,消息引用,消息转发,消息删除,消息置顶,群聊禁言,添加群成员,消息虚拟列表滚动显示,群成员列表,群权限管理,添加管理员,群资料设置,群头像设置,群成员昵称设置,群私密公开设置,进群审核设置,群管理处申请,群静态资源列表,群公告,退出群聊,清空群消息,@群成员,等等。 5. 待完善功能 - 多消息转发,多消息引用,消息类型搜索,删除好友,搜索公开群聊添加,邮箱验证完善,修改密码处理。 - 待增加功能-> 消息收藏夹,消息公告显示,管理员功能,好友朋友圈,朋友圈权限,订阅号功能,订阅号后台功能管理等。 ## 页面预览 ## 后端 - 使用nestjs开发 - 给出打包后的源码 - 开发环境和运行环境配置在编写处理中 ``` │ app.module.ts │ config.schema.ts │ main.ts ├─api │ └─index │ │ index.controller.ts │ │ index.module.ts │ │ index.service.ts │ │ jwt.strategy.ts │ ├─decorator │ │ get-user.decorator.ts │ ├─dto │ │ auth-credentials.dto.ts │ │ authenticator.dto.ts │ │ credentials.dto.ts │ │ file-upload.dto.ts │ │ verify-google.dto.ts │ └─interface │ jwt-payload.interface.ts ├─common │ ├─database │ │ mongoose.import.module.ts │ ├─email │ │ email.import.module.ts │ ├─ftp │ │ ftp.import.module.ts │ ├─log4js │ │ log4js.import.module.ts │ ├─redis │ │ redis.import.module.ts │ ├─session │ │ session.import.module.ts │ └─upload │ upload.module.ts ├─enums │ global.enum.ts ├─interceptor │ response.interceptor.t ├─locales │ en-US.ts │ ja-JP.ts │ zh-CN.ts │ zh-TW.ts ├─middlewares │ logger.middleware.ts ├─modules │ │ entity.repository.ts │ │ │ ├─address │ │ │ address.module.ts │ │ │ address.repository.ts │ │ │ index.ts │ │ │ │ │ └─schemas │ │ address.schema.ts │ ├─apply │ │ │ apply.interface.ts │ │ │ apply.module.ts │ │ │ apply.repository.ts │ │ │ index.ts │ │ │ │ │ └─schemas │ │ apply.schema.ts │ ├─chat │ │ │ chat.interface.ts │ │ │ chat.module.ts │ │ │ chat.repository.ts │ │ │ index.ts │ │ │ │ │ └─schemas │ │ chat.schema.ts │ ├─chathistory │ │ │ chathistory.interface.ts │ │ │ chathistory.module.ts │ │ │ chathistory.repository.ts │ │ │ index.ts │ │ │ │ │ └─schemas │ │ chathistory.schema.ts │ ├─city │ │ │ city.module.ts │ │ │ city.repository.ts │ │ │ index.ts │ │ │ │ │ └─schemas │ │ city.schema.ts │ ├─friend │ │ │ friend.interface.ts │ │ │ friend.module.ts │ │ │ friend.repository.ts │ │ │ index.ts │ │ │ │ │ └─schemas │ │ friend.schema.ts │ ├─group │ │ │ group.interface.ts │ │ │ group.module.ts │ │ │ group.repository.ts │ │ │ index.ts │ │ └─schemas │ │ group.schema.ts │ ├─groupmanage │ │ │ groupmanage.interface.ts │ │ │ groupmanage.module.ts │ │ │ groupmanage.repository.ts │ │ │ index.ts │ │ └─schemas │ │ groupmanage.schema.ts │ ├─groupmember │ │ │ groupmember.interface.ts │ │ │ groupmember.module.ts │ │ │ groupmember.repository.ts │ │ │ index.ts │ │ └─schemas │ │ groupmember.schema.ts │ ├─loginlog │ │ │ index.ts │ │ │ loginlog.module.ts │ │ │ loginlog.repository.ts │ │ └─schemas │ │ loginlog.schema.ts │ ├─notice │ │ │ index.ts │ │ │ notice.module.ts │ │ │ notice.repository.ts │ │ └─schemas │ │ notice.schema.ts │ ├─top │ │ │ index.ts │ │ │ top.module.ts │ │ │ top.repository.ts │ │ └─schemas │ │ top.schema.ts │ └─user │ │ index.ts │ │ user.interface.ts │ │ user.module.ts │ │ user.repository.ts │ └─schemas │ user.schema.ts ├─socket │ │ socket.format.ts │ │ socket.gateway.ts │ │ socket.module.ts │ ├─interface │ │ services.interface.ts │ │ socket.interface.ts │ └─services │ apply.service.ts │ chat.service.ts │ chathistory.service.ts │ common.service.ts │ friend.service.ts │ group.service.ts │ groupmanage.service.ts │ groupmember.service.ts │ online.service.ts │ top.service.ts │ user.service.ts └─utils │ index.ts ├─email │ email.constants.ts │ email.interface.ts │ email.module.ts │ email.service.ts │ index.ts └─ftp ftp.constants.ts ftp.interface.ts ftp.module.ts ftp.service.ts index.ts ```