Kav02 / DEV013-text-analyzer

0 stars 0 forks source link

Analizador de texto

Índice


1. Consideraciones generales

2. Preámbulo

Una lupa sobre texto de libro

_Credito: Foto de ethan_ _en Unsplash_

Un analizador de texto es una aplicación para extraer información útil de un texto utilizando diversas técnicas, como el procesamiento del lenguaje natural (NLP), el aprendizaje automático (ML) y el análisis estadístico. Estas aplicaciones pueden proporcionar una variedad de métricas que brindan información básica sobre la longitud y la estructura del texto como por ejemplo, el conteo de palabras, el conteo de caracteres, el conteo de oraciones y el conteo de párrafos. Otras métricas incluyen el análisis de sentimientos, que utiliza técnicas de NLP para determinar el tono general positivo, negativo o neutral del texto, y el análisis de legibilidad, que utiliza algoritmos para evaluar la complejidad y la legibilidad del texto.

En general, las aplicaciones de análisis de texto brindan información valiosa y métricas sobre los textos que pueden ayudar a las usuarias a tomar decisiones informadas y sacar conclusiones significativas. Mediante el uso de estas herramientas de análisis, las usuarias pueden obtener una comprensión más profunda de los textos.

3. Resumen del proyecto

En este proyecto se creó una aplicación web que servirá para analizar un texto en el navegador mostrando una serie de indicadores y métricas específicas sobre caracteres, letras, números, etc. El texto se recibe como input por el usuario. Se utilizó HTML, CSS y JavaScript.

4. Funcionalidades

El listado de funcionalidades es el siguiente:

  1. La aplicación debe permitir a la usuaria ingresar un texto escribiéndolo en un cuadro de texto.

  2. La aplicación debe calcular las siguientes métricas y actualizar el resultado en tiempo real a medida que la usuaria escribe su texto:

    • Recuento de palabras: la aplicación debe poder contar el número de palabras en el texto de entrada y mostrar este recuento a la usuaria
    • Recuento de caracteres: la aplicación debe poder contar el número de caracteres en el texto de entrada, incluidos espacios y signos de puntuación, y mostrar este recuento a la usuaria.
    • Recuento de caracteres excluyendo espacios y signos de puntuación: la aplicación debe poder contar el número de caracteres en el texto de entrada, excluyendo espacios y signos de puntuación, y mostrar este recuento a la usuaria.
    • Recuento de números: la aplicación debe contar cúantos números hay en el texto de entrada y mostrar este recuento a la usuaria.
    • Suma total de números: la aplicación debe sumar todos los números que hay en el texto de entrada y mostrar el resultado a la usuaria.
    • Longitud media de las palabras: la aplicación debe calcular la longitud media de las palabras en el texto de entrada y mostrársela a la usuaria.
  3. La aplicación debe permitir limpiar el contenido de la caja de texto haciendo clic en un botón.

5. Boilerplate

La lógica del proyecto debe estar implementada completamente en JavaScript. En este proyecto NO está permitido usar librerías o frameworks, solo JavaScript puro también conocido como Vanilla JavaScript.

Para comenzar este proyecto tendrás que hacer un fork y clonar este repositorio que contiene un boilerplate con tests (pruebas). Un boilerplate es la estructura básica de un proyecto que sirve como un punto de partida con archivos y configuración inicial de dependencias y tests.

El boilerplate que les damos contiene esta estructura:

./
├── .babelrc
├── .editorconfig
├── .eslintrc
├── .gitignore
├── README.md
├── package.json
├── src
│   ├── analyzer.js
│   ├── index.html
│   ├── index.js
│   └── style.css
└── test
    ├── .eslintrc
    └── analyzer.spec.js

Descripción de scripts / archivos


Deploy

Hacer que los sitios estén publicados (o desplegados) para que usuarias de la web puedan acceder a él es algo común en proyectos de desarrollo de software.

En este proyecto, se utilizó Github Pages para desplegar nuestro sitio web.

6. Criterios de aceptación mínimos del proyecto

A continuación encontrarás los criterios de aceptación mínimos del proyecto relacionados con cada objetivo de aprendizaje.

HTML

CSS

Web APIs

JavaScript

Control de Versiones (Git y GitHub)

Centrado en la usuaria

Diseño de producto

7. Pruebas

Este proyecto cuenta con 3 conjuntos de pruebas.

Pruebas unitarias

Una prueba unitaria es una técnica de prueba de software en la que se comprueba que cada componente individual de un programa o sistema funciona correctamente de manera aislada. En otras palabras, se prueba cada unidad de código por separado para asegurarse de que cumpla con los requisitos y especificaciones.

Las pruebas unitarias de este proyecto ejecutarán los métodos getWordCount, getCharacterCount, getCharacterCountExcludingSpaces, getNumbersCount, getNumbersSum y getAverageWordLength con diferentes argumentos y se confirmará que los valores retornados sean los esperados.

Puedes ejecutar estas pruebas con el comando npm run test como se muestra en la siguiente imagen:

npm run test

El boilerplate incluye tareas que ejecutan eslint y htmlhint para verificar el HTML y JavaScript con respecto a una guías de estilos. Ambas tareas se ejecutan automáticamente antes de ejecutar las pruebas unitarias cuando usamos el comando npm run test. En el caso de JavaScript estamos usando un archivo de configuración de eslint que se llama .eslintrc que contiene un mínimo de información sobre el parser que usar (qué version de JavaScript/ECMAScript), el entorno (browser en este caso) y las reglas recomendadas (eslint:recommended). En cuanto a reglas/guías de estilo en sí, usaremos las recomendaciones por defecto de tanto eslint como htmlhint.

Pruebas de criterios mínimos de aceptación

Estas pruebas analizarán los archivos index.html, index.js, analyzer.js y style.css para verificar que cumples con los criterios minimos de aceptacion. Cada criterio esta relacionado con un objetivo de aprendizaje.

Puedes ejecutar todas estas pruebas con el comando npm run test:oas como se muestra en la siguiente imagen:

npm run test oas

Puedes ejecutar las pruebas de cada grupo de objetivos de aprendizaje de manera individual con los siguientes comandos:

Pruebas end-to-end

Una prueba end-to-end (E2E) es una técnica de prueba de software en la que se verifica el funcionamiento de todo el sistema desde el inicio hasta el final. En otras palabras, se prueba el flujo completo del software, simulando la interacción de la usuaria con la aplicación, para asegurarse de que todas las partes del sistema funcionan correctamente en conjunto.

Puedes ejecutar estas pruebas con el comando npm run test:e2e como se muestra en la siguiente imagen:

npm run test e2e

Github actions

Este repositorio usa una GitHub Action para ejecutar automáticamente las pruebas unitarias, pruebas de criterios mínimos de aceptación y y pruebas end-to-end cada vez que se hagas un push en la rama main de tu repositorio.

Puedes consultar el resultado de esta Github Action en la pestaña Actions de tu repositorio en Github como se muestra en la siguiente imagen:

Github Action

8. Consideraciones para pedir tu Project Feedback

Antes de agendar tu Project Feedback con un coach, asegúrate que tu proyecto:

9. Objetivos de aprendizaje

HTML

CSS

Web APIs

JavaScript

Control de Versiones (Git y GitHub)

Centrado en el usuario

Diseño de producto

10. Funcionamiento