docs: add optional objectives and challenges

This commit is contained in:
Miguel Nogueira 2024-05-19 03:36:45 +01:00
parent 7ace0f471d
commit 98f85d6963
Signed by: miguel456
GPG Key ID: 43EF15DB0CC86DDD
2 changed files with 17 additions and 4 deletions

View File

@ -10,8 +10,8 @@
<sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/.bundle" />
</content>
<orderEntry type="jdk" jdkName="ruby-3.3.1-p55" jdkType="RUBY_SDK" />
<orderEntry type="jdk" jdkName="ruby-3.0.2-p107" jdkType="RUBY_SDK" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" scope="PROVIDED" name="bundler (v2.5.9, ruby-3.3.1-p55) [gem]" level="application" />
<orderEntry type="library" scope="PROVIDED" name="bundler (v2.5.9, ruby-3.0.2-p107) [gem]" level="application" />
</component>
</module>

View File

@ -6,6 +6,19 @@
- **Objetivo 2**: ~~Quais IPs resultaram no maior número de erros de cliente (400-499)~~ (Feito)
- **Objetivo 3**: ~~Agrupar por tipo de cliente e saber que tipos de clientes contactam mais o site~~ (Feito)
### Sub-objetivos
### Sub-objetivos e desafios
-
- Agrupar visitas por IP por mês
- Exemplo: IP 5.15.124.2 visitou o site 20 veses em abril e gerou 4 erros no mesmo mês
- Criar funcionalidade para enviar denúncias ao AbuseIPDB (OPCIONAL)
- Recolher os três principais suspeitos e oferecer a escolha de denúncia ao utilizador (Ex. os IPs com mais erros suspeitos, excl. erros 404)
- Modo pesquisa (OPCIONAL)
- Oferecer ao utilizador uma forma de introduzir um IP para obter todas as estatísticas que o programa já oferece, e avisar caso o IP não tenha contactado o site
- Whois e reputação do IP (OPCIONAL)
- Modo não-interativo (OPCIONAL)
- Permitir que o utilizador controle o programa e o seu output através da linha de comandos (ex. rubystats --in access.log -i x.x.x.x -v -e)
- Garantir que o programa segue os [príncipios Unix](https://en.wikipedia.org/wiki/Unix_philosophy)
- Menu interativo (OPCIONAL)
- Permitir ao utilizador que estatística pretende visualizar
- Tornar o programa mais modular, fácil de manter e de expandir (OPCIONAL);
- Permitir que o utilizardor escolha que tipo de log pretende analisar (Nginx/Apache/Lightspeed/IIS, etc) utilizando as mesmas funções utilitárias