Hola~ 一款基于Electron的聊天软件

Hola

前言

本项目旨在从零到壹,制做一款界面精美的聊天软件。html

Github 地址

由于已工做,因此可能没有多少时间来继续跟进这个项目了,项目可优化的点已在下文列出,欢迎你们 Fork 或 Star。前端

ps: 征 logo 一枚。由于本人是开发,设计功底欠缺,因此软件 logo 设计的有点丑,若是有大神有更好的 logo,欢迎 email。html5

技术栈

  • 开发环境node

    • 操做系统:macOS High Sierra v10.13.1
    • 编辑器:Visual Studio Code v1.19.1
    • npm:v5.3.0
    • Node:v8.4.0
  • 客户端git

    • UI设计:Sketch
    • 软件框架:Electron
    • 界面实现:Vue.js + Vuex + Vue-Router + Webpack
    • 通讯模块:socket.io-client
    • 视频聊天:原生 WebRTC
  • 服务端github

    • 服务器:Node.js
    • 后端框架:Koa2
    • 通讯模块:socket.io
    • 数据库:Redis 和 MongoDB

软件效果图

效果图

实现功能

  • [x] 登陆注册模块(<手机号+验证码>形式的登陆注册)
  • [x] 聊天区模块web

    • [x] 最近联系人列表
    • [x] 历史消息(暂未作上拉加载)
    • [x] 私聊算法

      • [x] 文本消息
      • [x] 图片消息
      • [x] 视频聊天
    • [x] 群聊数据库

      • [x] 文本消息
      • [x] 图片消息
  • [x] 联系人模块npm

    • [x] 联系人列表
    • [x] 好友资料展现
    • [x] 群组资料展现
    • [x] 删好友,退出或解散群组
  • [x] 功能区模块

    • [x] 添加好友/群组
    • [x] 建立群组
  • [x] 设置区模块

    • [x] 我的资料设置
    • [x] 软件设置

      • [x] 国际化

        • [x] 中文
        • [x] 英文

项目目录

.
├── LICENSE         
├── README.md
├── client          # 客户端代码
├── docs            # 各类文档(需求文档、UI文档、流程图、数据库设计等)
├── preview.png     # 软件预览图
└── server          # 服务端代码

反思 & 展望

该项目为我大学毕业设计的项目,因时间紧迫,只实现了基本的聊天、加删好友等功能,不少功能还未实现,因此软件仍是有不少的瑕疵。为此,我特地思考了很长时间,将待改进的细节或新的功能总结以下:

  • [ ] 历史消息作成上拉瀑布流加载的效果
  • [ ] 为消息注明消息时间、发送状态、已读未读等状态
  • [ ] 为最近联系人列表添加最后一条消息的展现
  • [ ] 为最近联系人添加未读消息个数的统计
  • [ ] 添加好友或加入群组时要进行确认
  • [ ] 为软件的新消息使用系统原生通知窗口通知
  • [ ] 为软件增长原生菜单
  • [ ] 升级输入框,从而能够向输入框直接插入剪切板中的图片
  • [ ] 本身搭建文件服务器,图片服务器(或者使用第三方好比七牛云、阿里云的相关服务)
  • [ ] 为 WebRTC 实现后备方案,搭建 Relay Server,以加强视频聊天的稳定性
  • [ ] 增长网络断开处理的相关逻辑
  • [ ] 了解数据加密相关知识,为消息做加密处理
  • [ ] 为软件作跨平台处理,兼容性方面有待增强
  • [ ] 实现软件自动更新
  • [ ] 接入智能机器人聊天
  • [ ] 实现本地存储历史消息(nedb
  • [ ] 为软件加入聊天状况分析(好比天天发了多少条消息,与谁聊天最频繁等)

扩展阅读

相关文章
相关标签/搜索