软件工程小组项目文档

小组成员:赵有为、张天善、宋春雨、郭凯璐、孙楠、冯韵瑶

Uni-Chat项目文档

需求分析Need

​ 日常生活中我们在使用Ubuntu等系统时都会因为QQ等聊天工具对基于Linux的操作系统的兼容系不够而自闭,我们或是选择不使用这些聊天工具或是花很多时间配置这些应用的依赖并且在配置过程中会出现各种各样的问题.
​ 有时, 我们和他人聊天, 我可能比较喜欢使用QQ而别人却使用微信, 这时我们又不得不下载另外一个软件.
​ 有时, 我们可能并不想装那么多应用. 有的人可能一个都不想装.

​ 所以我们打算做一款跨平台的聊天工具。

​ 这个聊天工具具体可以支持两人之间的聊天、群聊、传输文件的功能,支持的平台包括Windows、Linux、Mac、移动端(IOS、IPadOS、安卓)、小程序(微信小程序、QQ小程序等等)、命令行版。

做法Approach

  • 用户优势:

    • 一款新应用, 面临的第一个问题就是用户习惯问题, 我们可以通过, 各种小程序的方式(PC端可使用命令行版), 不让用户安装任何额外的应用. 用户产生一定习惯后, 这时安装我们APP就是一个更好的选择了.
    • 一般情况下, 我们在我们的各个设备间发送文件, 要么使用U盘, QQ微信等, 没有一个统一的解决方案, 而我们适配各个平台, 就是为用户提供了一个统一的解决方案, 方便又快捷.
    • 内网模式, 有时我们可能没有网络, 但也没有U盘, 这时也无法使用QQ, 微信等; 这时用户可以通过这个模式, 使用局域网, 发文件, 聊天等;
    • Linux的用户使用QQ等聊天工具非常困难。QQ等聊天工具对Linux的支持比较差,在安装的过程中可能在安装依赖的过程中会出现各种问题,非常浪费时间.

所以我们的用户潜力比较大

  • 基础的招式:CSS+HTML可以做非常美观的界面。
  • 独特的招式:
    • 基于Npm和Node的Javascript+Electron可以制作跨Windows、Linux、Mac的聊天工具,基于一套代码通过使用不同的配置制作出跨平台的软件。基于Node的服务器可以处理高并发的业务。
    • 基于Uni-App, 可使用JS制作: 跨各种小程序, 安卓, IOS, H5各种平台的聊天工具
    • 可以使用微信, QQ, 微博, 支付宝的开放能力, 快速接入用户, 简化繁琐的用户注册流程, 减少可能的用户流失.
  • 预计的困难
    • 并发问题的处理
    • 团队分工的衔接问题
    • A用户向已经离线的B用户发送消息,B用户上线后接收消息的处理
    • 两个用户直接消息传递的流程
    • 各种通信协议之间的权衡
    • 各大互联网公司应用开放能力接入
    • 各大平台的适配

好处Benefit

  • 使用统一的方案解决问题, 用户无需考虑使用哪种软件, 也无需考虑安装多款软件, 不同平台如何共享的问题, 减少用户的烦恼, 只需要我们这一个就够了;
  • 使用各种小程序以及Uni-Chat-Cli命令行版, 可以满足不愿安装过多应用的用户的需求
  • 内网模式, 没有网络, 也阻止不了我共享文件, 聊天的热情;
  • 针对Linux用户使用聊天工具难的问题,方便Linux用户与其他用户进行信息交互
  • 微信小程序可以直接与其他平台的好友进行聊天
  • 命令行界面使用npm或yarn等安装uni-chat之后进行聊天

竞争Competitors

  • QQ等国内的聊天软件在Windows、Mac等电脑在国内占据大部分市场,而在Linux的平台内支持较少
  • Discord, Telegram等国外跨端软件, 国内使用有网络障碍
  • 飞Q, 快传等内网共享文件, 聊天软件

交付Delivery

我们可以通过Npm、Yarn的开源仓库向用户交付产品,搭建自己产品的宣传和下载页面,并在Github仓库有开源开骂

电梯演说

当你使用Linux在与同学在线交流伤脑筋的时候,当你为在Linux里忙于安装QQ等聊天工具的依赖的时候,很可能会怀疑人生,会遇到各种莫名其妙的报错和Bug。我们的产品旨在为Linux用户提供一个好用的、可靠的、功能完善的工具来与其他用户进行在线交流。

UniChat-软件工程小组-第一次作业-选题的更多相关文章

  1. 软件工程(QLGY2015)第一次作业小结(含成绩)

    相关博文目录: 第一次作业点评 第二次作业点评 第三次作业点评 Github项目提交 github的代码提交,大部分人都只是提交了单个文件,存在几个问题 请提交完整的项目文件到github 问题:为什 ...

  2. 软件工程2020第一次作业(by cybersa)

    1 作业描述 作业属于哪个课程 2020春福大软工实践W班 这个作业要求在哪里 寒假作业(1/2) 这个作业的目标 建立博客.掌握markdown语法,学习写博客,回顾,总结,展望自己的学习历程 作业 ...

  3. 软件工程UML第一次作业

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzzcxy/2018SE1/ 这个作业要求在哪里 https://edu.cnblogs.com/campus/f ...

  4. 广州商学院16级软工一班&二班-第一次作业成绩

    广州商学院16级软工一班&二班-第一次作业成绩 作业地址 16软工一班 16软工二班 总结 本次作业反映了几个比较严重的问题: 不按要求阅读相应的文章,回答问题只是敷衍几句. 部分同学的版式混 ...

  5. 集大1513 & 1514班 软件工程第一次作业评分与点评

    谢谢大多数同学按时完成了作业,同学态度都比较端正,没有为了完成作业或者讨好老师而说一些假话空话. 很多同学选择CS之前并没有从兴趣或者擅长出发.这是一个普遍的现象,十年前我们是这样,十年后的孩子们还是 ...

  6. 【软件工程1916|W(福州大学)_助教博客】团队第一次作业成绩公示

    题目 第一次作业 评分准则: 队名(最好能够体现项目内容,要求有亮点与个性):(1分) 拟作的团队项目描述:一句话(中英文不限):(1分) 队员风采:介绍每一名队员,包括成员性格.擅长的技术.编程的兴 ...

  7. 2021S软件工程——个人阅读作业2

    2021S软件工程--个人阅读作业2 项目 内容 这个作业属于哪个课程 2021春季软件工程(罗杰 任建) 这个作业的要求在哪里 个人阅读作业#2 我在这个课程的目标是 了解并熟悉软件开发的具体流程, ...

  8. [BUAA]起点 软工第一次作业-热身

    项目 内容 这个作业属于哪个课程 2020计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 第一次作业-热身! 我在这个课程的目标是 了解软件开发,提高自己的工程能力和团队协作能力 这个作业在哪 ...

  9. C 语言学习 第一次作业总结

    第一次的作业是冯老师布置的练习题,需要在pta平台上完成.我这边看不到结果,但是透过冯老师给出的截图,同学们都还是认真的去做的.同时,我这边也布置了一个持续 3 周的作业:熟悉 git 的使用.因为后 ...

随机推荐

  1. win10 配置git 环境变量

    'git' 不是内部或外部命令,也不是可运行的程序 或批处理文件. 解决办法: 去百度大概搜了一下,是因为没有配置Git环境变量的原因,但是没有具体的解决步骤,特此记录一下. 右键查看git安装目录: ...

  2. 创建slackapp prometheus告警发到slack

    创建slackapp: https://blog.walterlv.com/post/slack-api-starter-incoming-webhooks.html#%E5%88%9B%E5%BB% ...

  3. c的指针和php中的引用的区别

    https://blog.csdn.net/yangfanzn/article/details/44731391 1-php和c中的变量名都会被解析成内存地址,变量名所代表的内存的地址中内容即代表变量 ...

  4. [LeetCode] 127. Word Ladder 单词阶梯

    Given two words (beginWord and endWord), and a dictionary's word list, find the length of shortest t ...

  5. rConfig v3.9.2 授权认证与未授权RCE (CVE-2019-16663) 、(CVE-2019-16662)

    rConfig v3.9.2 authenticated and unauthenticated RCE (CVE-2019-16663) and (CVE-2019-16662) 原文:https: ...

  6. 最新 梆梆安全java校招面经 (含整理过的面试题大全)

    从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.梆梆安全等10家互联网公司的校招Offer,因为某些自身原因最终选择了梆梆安全.6.7月主要是做系统复习.项目复盘.Leet ...

  7. PKUWC2020自闭记

    我才听说PKU今年对我省高二要求CSP分数>450? 我似乎丧失了一个溜去隔壁的机会? 机会是不存在的qwq THUWC3个数据结构直接送人升天 Day1 T1:感觉相邻的k!个排列是同构的可以 ...

  8. Python和Java、PHP、C、C#、C++等其他语言的对比?

    1111 1.C语言,它既有高级语言的特点,又具有汇编语言的特点,它是结构式语言.C语言应用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素.C++在这方面做了 ...

  9. LeetCode 563. 二叉树的坡度(Binary Tree Tilt) 38

    563. 二叉树的坡度 563. Binary Tree Tilt 题目描述 给定一个二叉树,计算整个树的坡度. 一个树的节点的坡度定义即为,该节点左子树的结点之和和右子树结点之和的差的绝对值.空结点 ...

  10. 05 javascript知识点---BOM和DOM

    1.DOM简单学习(为了满足案例要求) 功能:控制html文档的内容获取页面标签(元素)对象:Element document.getElementById("id值"):通过元素 ...