Idea de proyecto | (Un asistente personal)

Título del proyecto: Acolyte: un asistente personal

Introducción:
La idea básica detrás de este proyecto es crear una aplicación independiente simple
que ayude a las personas menos expertas en tecnología en el mundo a usar la computadora sin sentirse ignorantes o analfabetos informáticos.
Las computadoras se han convertido en dispositivos muy importantes y menos costosos con el tiempo.
La aplicación funciona igual que Siri/Google Assistant, etc. Pero la aplicación trata principalmente con la computadora en sí.
La interfaz de usuario de la aplicación se explica por sí misma y es mínima.
Actualmente toma texto como entrada ya que la mayoría de las personas no son muy buenas para hablar.

Restricciones:
la aplicación se creó sobre y para un MacBook de Apple, por lo que se restringe solo a macOS. Acolyte es compatible con todas las versiones de Apple macOS.
El sistema también asume que el usuario tiene conocimientos mínimos de inglés a partir de ahora.

Marco conceptual:

Siempre hay margen de mejora. Por lo que la aplicación fue construida usando arquitectura MVC, diseño de procesos incrementales. Estas estructuras de diseño siguen el enfoque modular que facilita agregar nuevas características al sistema.

El sistema también implementa el patrón singleton y el principio de responsabilidad única que aseguran el funcionamiento individual de los módulos.

Funciones:
El sistema proporciona todas las funciones indicadas a continuación.

    -Mostrar información del
    sistema
    , como el uso de la red, RAM, etc. el navegador web -recargar una página web en el navegador web -registro de teclas con pulsaciones de teclas segregadas según la aplicación y las marcas de tiempo. -seguimiento del historial del navegador

Diagramas: Diagramas 
UML: Diagrama de
casos de uso:
Un caso de uso es un conjunto de escenarios que describen una interacción entre un usuario y un sistema. Un diagrama de casos de uso muestra la relación entre los actores y los casos de uso. Los dos componentes principales de un diagrama de casos de uso son los casos de uso y los actores.

Diagrama de actividad:
el diagrama de actividad es básicamente un diagrama de flujo para representar el flujo de una actividad a otra actividad. La actividad se puede describir como una operación del sistema. El flujo de control se extrae de una operación a otra. Este flujo puede ser secuencial, ramificado o concurrente. Los diagramas de actividad se ocupan de todo tipo de control de flujo mediante el uso de diferentes elementos como bifurcación, unión, etc.

Diagrama de secuencia
Un diagrama de secuencia es un diagrama de interacción que muestra cómo los objetos operan entre sí y en qué orden. Es una construcción de un gráfico de secuencia de mensajes.
Un diagrama de secuencia muestra interacciones de objetos organizadas en secuencia de tiempo. Representa los objetos y clases involucrados en el escenario y la secuencia de mensajes intercambiados entre los objetos necesarios para llevar a cabo la funcionalidad del escenario.

Algoritmos:
la mayoría de los algoritmos utilizados están diseñados, analizados y probados exhaustivamente para el proyecto. Creamos la mayoría de ellos desde cero para hacerlo lo más rápido posible.
El que hemos utilizado tal cual es el teorema de Naive Bayes.

Teorema de Naive Bayes:
El teorema de Naive Bayes se utilizó para segregar los comandos en 2 grupos, a saber, las capacidades y los comandos del sistema.

Herramientas utilizadas:
el proyecto se construyó principalmente utilizando el lenguaje de programación Swift desde cero de acuerdo con las funcionalidades requeridas para lograr la velocidad del rayo y una ejecución fluida. Algunas funcionalidades del sistema debían estar escritas en obj-c y en el lenguaje de scripting AppleScript. La aplicación utiliza el estándar SQLite3 como base de datos.
El registrador de claves que escribimos está publicado en GitHub .

Aplicación:
Acolyte se creó para ayudar a las personas con conocimientos informáticos limitados, pero también es importante tener en cuenta que la otra clase de usuarios puede encontrar útiles algunas funcionalidades específicas, como el registro del sistema.

Las personas que no están familiarizadas con moverse por su cuenta en una computadora pueden usar esta aplicación, ya que abstrae todos los pasos y presenta solo los más importantes. Al igual que pueden decir que se conecten a un wifi o bluetooth en particular, se conectará. ¿Quieres disminuir el brillo o el volumen de la pantalla? ¿Quieres abrir y cerrar una aplicación, un archivo? Simplemente dígalo como lo haría con una persona, hará el trabajo por usted.

Muchos padres tienen miedo de lo que su hijo está navegando en Internet. La aplicación puede notificar a sus padres sobre la actividad. Incluso si el niño borra todo el historial o usa el modo de incógnito, etc. La aplicación registra cada pulsación de tecla y sitio web utilizado por el niño. No te preocupes, ya que no dejarán ningún rastro mientras corren. Se oculta completamente y no requiere ningún permiso para ejecutarse.

También puede ayudar a moverse por la web abriendo, cerrando, marcando, recargando, retrocediendo, siguiente, etc. una página web con solo decirlo para hacerlo.
*La extracción de datos y la interacción con los elementos/Nodes de una página web todavía están en funcionamiento.

Finalmente, es la solución para monitorear la computadora. Es la solución para los padres que recibieron una computadora de su hijo/a y no pueden operarla para hablar con ellos. Es la solución para las personas que están dispuestas a hacer una computadora como su asistente real (no como los llamados asistentes falsos como Siri, Cortana, etc.), como Tony Stark. Incluso si alguien lo usa, obtienes estadísticas completas sobre lo que estaba haciendo, qué se conectó, etc.

Proyecto realizado por:
Sri Harish
Aravind Sriram

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *