From 8c6459fa631a8750192b4ca151e8a5538d2d398b Mon Sep 17 00:00:00 2001 From: Christian Lara <87323279+ChristianRL23@users.noreply.github.com> Date: Mon, 28 Aug 2023 11:00:05 -0600 Subject: [PATCH] Add Text Analyzer README in Portuguese (#1537) --- projects/01-text-analyzer/README.pt.md | 595 ++++++++++++++++++ .../01-text-analyzer/test/analyzer.spec.js | 67 +- 2 files changed, 628 insertions(+), 34 deletions(-) create mode 100644 projects/01-text-analyzer/README.pt.md diff --git a/projects/01-text-analyzer/README.pt.md b/projects/01-text-analyzer/README.pt.md new file mode 100644 index 000000000..e0257fb4e --- /dev/null +++ b/projects/01-text-analyzer/README.pt.md @@ -0,0 +1,595 @@ +# Analisador de Texto + +## Índice + +- [1. Considerações gerais](#1-considerações-gerais) +- [2. Preâmbulo](#2-preâmbulo) +- [3. Resumo do projeto](#3-resumo-do-projeto) +- [4. Funcionalidades](#4-funcionalidades) +- [5. Boilerplate](#5-boilerplate) +- [6. Critérios de aceitação mínimos do projeto](#6-critérios-de-aceitação-mínimos-do-projeto) +- [7. Testes](#7-testes) +- [8. Dicas, sugestões e leituras complementares](#8-dicas-sugestões-e-leituras-complementares) +- [9. Considerações para solicitar seu Feedback de Projeto](#9-considerações-para-solicitar-seu-feedback-de-projeto) +- [10. Objetivos de aprendizado](#10-objetivos-de-aprendizado) +- [11. Funcionalidades opcionais](#11-funcionalidades-opcionais) + +--- + +## 1. Considerações gerais + +- Este projeto será resolvido de forma **individual**. +- A estimativa de tempo para completar o projeto varia de 1 a 3 Sprints. +- Concentre-se em aprender, não apenas em "completar" o projeto. +- Sugerimos que você não tente saber tudo antes de começar a codificar. + Não se preocupe muito com o que você _ainda_ não entende. + Você aprenderá ao longo do processo. + +## 2. Preâmbulo + +![Uma lupa sobre texto de livro](https://github.com/Laboratoria/bootcamp/assets/92090/2b45f653-69a5-4282-a65c-d34125c36113) + +_Créditos: Foto de [ethan](https://unsplash.com/fr/@andallthings?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText)_ +_em [Unsplash](https://unsplash.com/es/fotos/72NpWZJOskU?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText)_ + +Um analisador de texto é uma aplicação para extrair informações úteis de um +texto utilizando diversas técnicas, como o processamento de linguagem natural +(PLN),aprendizado de máquina (ML) e análise estatística. Essas aplicações podem +fornecer uma variedade de métricas que oferecem informações básicas sobre +o comprimento e a estrutura do texto, como contagem de palavras, contagem de +caracteres, contagem de sentenças e contagem de parágrafos. Outras métricas +incluem análise de sentimentos, que utiliza técnicas de PLN para determinar +o tom geral positivo, negativo ou neutro do texto, e análise de legibilidade, +que utiliza algoritmos para avaliar a complexidade e legibilidade do texto. + +Em geral, as aplicações de análise de texto fornecem informações valiosas e métricas +sobre os textos que podem ajudar os usuários a tomar decisões informadas e tirar +conclusões significativas. Por meio do uso dessas ferramentas de análise, os usuários +podem obter uma compreensão mais profunda dos textos. + +## 3. Resumo do projeto + +Neste projeto, você criará uma aplicação web que permitirá que a usuária analise +um texto no navegador, exibindo uma série de indicadores e métricas específicas +sobre caracteres, letras, números, etc., que foram inseridos por ela como entrada. +Você realizará isso usando HTML, CSS e JavaScript. + +## 4. Funcionalidades + +A lista de funcionalidades é a seguinte: + +1. A aplicação deve permitir que a usuária insira um texto escrevendo-o + em uma caixa de texto. + +2. A aplicação deve calcular as seguintes métricas e atualizar o + resultado em tempo real conforme a usuária escreve o texto: + + - **Contagem de palavras**: a aplicação deve ser capaz de contar o número de + palavras no texto de entrada e mostrar essa contagem para a usuária. + - **Contagem de caracteres**: a aplicação deve ser capaz de contar o número de + caracteres no texto de entrada, incluindo espaços e sinais de + pontuação, e mostrar essa contagem para a usuária. + - **Contagem de caracteres excluindo espaços e sinais de pontuação**: + a aplicação deve ser capaz de contar o número de caracteres no texto de + entrada, excluindo espaços e sinais de pontuação, e mostrar essa contagem + para a usuária. + - **Contagem de números**: a aplicação deve contar quantos números há no + texto de entrada e mostrar essa contagem para a usuária. + - **Soma total dos números**: a aplicação deve somar todos os números que + estão no texto de entrada e mostrar o resultado para a usuária. + - **Comprimento médio das palavras**: a aplicação deve calcular o + comprimento médio das palavras no texto de entrada e mostrar esse valor para a usuária. + +3. A aplicação deve permitir limpar o conteúdo da caixa de texto ao clicar + em um botão. + +![Demonstração do analisador de texto](https://github-production-user-asset-6210df.s3.amazonaws.com/12631491/240650556-988dcd6f-bc46-473b-894c-888a66c9fe2d.gif "Demonstração do analisador de texto") + +## 5. Boilerplate + +A lógica do projeto deve ser implementada completamente em JavaScript. Neste +projeto, NÃO é permitido usar bibliotecas ou frameworks, apenas JavaScript +puro, também conhecido como Vanilla JavaScript. + +Para começar este projeto, você precisará fazer um _fork_ e _clonar_ este +repositório que contém um _boilerplate_ com testes (pruebas). Um _boilerplate_ +é a estrutura básica de um projeto que serve como um ponto de partida com +arquivos e configuração inicial de dependências e testes. + +O _boilerplate_ que fornecemos contém a seguinte estrutura: + + ./ + ├── .babelrc + ├── .editorconfig + ├── .eslintrc + ├── .gitignore + ├── README.md + ├── package.json + ├── src + │ ├── analyzer.js + │ ├── index.html + │ ├── index.js + │ └── style.css + └── test + ├── .eslintrc + └── analyzer.spec.js + +### Descrição de scripts / arquivos + +- `README.md`: você deve modificá-lo para explicar as informações necessárias para + o uso da sua aplicação web, bem como uma introdução à aplicação, sua funcionalidade + e decisões de design que você tomou. +- `.github/workflows`: esta pasta contém a configuração para +a execução do Github Actions. + Você não deve modificar esta pasta nem seu conteúdo. +- `docs/images`: contém as imagens deste README. +- `read-only/`: esta pasta contém os testes dos critérios mínimos de aceitação +e end-to-end. Você não deve modificar esta pasta nem seu conteúdo. +- [`src/index.html`](./src/index.html): este é o ponto de entrada da sua aplicação. + Este arquivo deve conter o seu HTML. +- [`src/style.css`](./src/style.css): este arquivo deve conter as regras de +estilo. Queremos que você escreva suas próprias regras, portanto, NÃO é +permitido o uso de frameworks de CSS (Bootstrap, Materialize, etc). +- [`src/analyzer.js`](./src/analyzer.js): aqui você deve implementar +o objeto `analyzer`, que já está _exportado_ no _boilerplate_. +Este objeto (`analyzer`) deve conter seis métodos: + + + `analyzer.getWordCount(text)`: esta função deve retornar a contagem de + palavras que estão no parâmetro `text` do tipo `string`. + + `analyzer.getCharacterCount(text)`: esta função deve retornar a + contagem de caracteres que estão no parâmetro `text` do tipo `string`. + + `analyzer.getCharacterCountExcludingSpaces(text)`: esta função deve + retornar a contagem de caracteres excluindo espaços e sinais de pontuação + que estão no parâmetro `text` do tipo `string`. + + `analyzer.getNumberCount(text)`: esta função deve retornar quantos + números estão no parâmetro `text` do tipo `string`. + + `analyzer.getNumberSum(text)`: esta função deve retornar a soma de todos os + números que estão no parâmetro `text` do tipo `string`. + + `analyzer.getAverageWordLength(text)`: esta função deve retornar o + comprimento médio das palavras que estão no parâmetro `text` do tipo + `string`. Use 2 casas decimais. + + Para exemplos de uso de cada função, recomendamos ver o arquivo + [`test/analyzer.spec.js`](./test/analyzer.spec.js). + + _Nota: para simplificar as funcionalidades, definiremos palavras como grupos + de caracteres separados por espaços. Por exemplo, as palavras no texto de + entrada `Sim, você pode fazer isso!` são quatro:_ + + + _`Sim,`_ + + _`você`_ + + _`pode`_ + + _`fazer isso!`_ + +- [`src/index.js`](./src/index.js): aqui você deve ouvir eventos do DOM, +invocar os métodos do objeto `analyzer` conforme necessário e atualizar +o resultado na IU (interface de usuária). +- [`test/analyzer.spec.js`](./test/analyzer.spec.js): este arquivo contém os +testes unitários para os métodos do objeto `analyzer`. + +--- + +#### Deploy + +Fazer com que os sites sejam publicados (ou _deployed_) para que as usuárias da +web possam acessá-los é algo comum em projetos de desenvolvimento de software. + +Neste projeto, usaremos o _Github Pages_ para implantar nosso site. + +O comando `npm run deploy` pode ajudá-lo com essa tarefa e você também pode +consultar a [documentação oficial](https://docs.github.com/pt/pages). + +## 6. Critérios de Aceitação Mínimos do Projeto + +A seguir, você encontrará os critérios de aceitação mínimos do projeto +relacionados a cada objetivo de aprendizado. + +### HTML + +- **Uso de HTML semântico** + + + [ ] A aplicação possui um cabeçalho composto por um + [`
`](https://developer.mozilla.org/pt-BR/docs/Web/HTML/Element/header) + que é pai de um + [`

`](https://developer.mozilla.org/pt-BR/docs/Web/HTML/Element/Heading_Elements) + com o texto `Analisador de texto`. Para que você possa praticar mais, esses + elementos não podem ter atributos `id`, `name` ou `class`. + + + [ ] A aplicação utiliza um + [`