项目理念 | (个人助理)
项目名称: Acolyte – 私人助理
介绍:
这个项目背后的基本思想是创建一个简单的独立应用程序
这有助于世界上不太精通技术的人使用计算机,而不会感到无知或计算机文盲。
计算机已成为非常重要的设备,并且随着时间的推移变得越来越便宜。
该应用程序的工作方式与 Siri/Google Assistant 等相同。但该应用程序主要处理计算机本身。
应用程序的 UI 是不言自明的且极简的。
目前它以文本作为输入,因为大多数人都不擅长说话。
约束:
该应用程序是在苹果 MacBook 上构建的,因此仅限于 macOS。 Acolyte 与 Apple macOS 的所有版本兼容。
该系统还假设用户到目前为止具有最少的英语知识。
概念框架:
总是有改进的余地。所以应用程序是使用 MVC 架构构建的,增量流程设计。这些设计结构遵循模块化方法,可以轻松地将新功能添加到系统中。
系统还实现了单例模式和单一职责原则,保证了模块的独立运行。
职能:
该系统提供以下所有功能。
- - 显示系统信息,如网络使用情况、内存等。
- 打开和关闭应用程序
- 改变系统亮度、音量
- 访问蓝牙、WIFI
- 为网页添加书签
- 在浏览器中创建新窗口或选项卡
- 在网络浏览器上转到上一个网页
- 在网络浏览器上重新加载网页
-根据应用程序和时间戳隔离击键的键盘记录。
- 浏览器历史跟踪
图表:
UML 图:
用例图:
用例是一组描述用户和系统之间交互的场景。用例图显示参与者和用例之间的关系。用例图的两个主要组成部分是用例和参与者。
活动图:
活动图基本上是一个流程图,表示从一个活动到另一个活动的流程。活动可以描述为系统的一个操作。控制流从一个操作到另一个操作。此流程可以是顺序的、分支的或并发的。活动图通过使用不同的元素(例如 fork、join 等)来处理所有类型的流控制
序列图
序列图是一种交互图,它显示对象如何相互操作以及以何种顺序操作。它是一个消息序列图的构造。
序列图显示按时间顺序排列的对象交互。它描述了场景中涉及的对象和类,以及执行场景功能所需的对象之间交换的消息序列
算法:
使用的大多数算法都是为项目定制设计、分析和测试的。我们从头开始创建其中的大多数以使其尽可能快。
我们使用的是朴素贝叶斯定理。
朴素贝叶斯定理:
朴素贝叶斯定理用于将命令分为两组,即功能和系统命令。
使用的工具:
该项目主要是根据所需的功能使用 Swift 编程语言从头开始构建的,以达到闪电般的速度和流畅的执行。系统的某些功能必须用 obj-c 和脚本语言 AppleScript 编写。该应用程序使用标准 SQLite3 作为数据库。
我们编写的键盘记录器发布在 GitHub 上。
应用:
Acolyte 旨在帮助计算机知识有限的人,但同样重要的是要注意其他类别的用户可能会发现某些特定功能(例如系统日志记录)很有用。
不熟悉自己在计算机上四处走动的人可以使用此应用程序,因为它抽象了所有步骤并仅呈现最重要的步骤。就像他们可以说连接到特定的 wifi 或蓝牙一样,它会连接。想要降低屏幕亮度或音量?想要打开和关闭应用程序、文件?就像你对一个人说的那样,它会为你完成工作。
许多父母担心他们的孩子在网上冲浪。该应用程序可以通知他们的父母有关该活动的信息。即使孩子删除了所有历史记录或使用隐身模式等。应用程序会记录孩子使用的每一次击键和网站。不要担心,因为它们在运行时不会留下任何痕迹。它完全隐藏并且不需要任何权限即可运行。
它还可以通过打开、关闭、添加书签、重新加载、返回、下一个等网页来帮助浏览网页。
*数据提取和与网页元素/节点的交互仍在工作中。
最后,它是监控计算机的解决方案。这是父母从他们的儿子/女儿那里得到一台计算机并且无法操作它来与他们交谈的解决方案。它是那些愿意将计算机作为他们真正的助手的人的解决方案(不像 Siri、Cortana 等虚假的所谓助手),就像 Tony Stark 一样。即使有人使用它,您也可以获得关于他/她在做什么、他们连接了什么等的完整统计数据。
项目完成人:
斯里哈里什
阿拉文德·斯里拉姆