A Ruby command-line interface (CLI) for exploring name rankings and statistics in Brazil, using data from the IBGE API.
- ✅ View the most common names in each Brazilian state (UF)
- ✅ View name rankings filtered by gender
- 🔜 View the most common names by city
- 🔜 Track name usage frequency over time
- Ruby
>= 3.1 - Bundler
-
Clone the repository:
git clone https://github.com/dedemenezes/cc-challenge.git cd cc-challenge -
Install dependencies:
bundle install
-
Run the app:
ruby app.rb
After launching the CLI, you'll see the following menu:
1. Ranking dos nomes mais comuns em uma determinada Unidade Federativa (UF)
2. Ranking dos nomes mais comuns em uma determinada cidade
3. Frequência do uso de um nome ao longo dos anos
Type 'q' or 'quit' to exit
Use the number keys to choose an option. Follow the prompts to explore the dataset.
This project uses minitest and webmock.
ruby tests/models/state_test.rb -v
ruby tests/services/ibge_test.rb -v-
Command for name ranking in cities
-
Ranking dos nomes mais comuns em uma determinada cidade
-
Obter o nome de uma cidade no terminal
-
Exibir o resultado em 3 tabelas:
- Uma para o ranking geral
- Outras duas tabelas separando os resultados para cada sexo
-
-
-
Command for name trends over time
-
Frequência do uso de um nome ao longo dos anos
-
Solicitar um ou mais nomes (separados sempre por vírgula)
-
Exibir uma tabela única, onde cada linha representa uma década e cada coluna representa um dos nomes informados na etapa anterior
-
-
-
Improve test coverage
-
Add caching for performance
MIT © André Menezes
Além da qualidade e organização do seu código, vamos avaliar também a facilidade de uso das interfaces e a qualidade da exibição dos resultados de cada consulta. Então dedique algum tempo para formatar minimamente as tabelas solicitadas.
A sua aplicação pode ser executada de duas formas:
-
Como uma aplicação que fica em execução de forma constante e conta com um menu para o usuário escolher a consulta a ser realizada ou sair da aplicação.
-
Como um CLI, similar a comandos como
giterailsque você executa em seu terminal. Nesse formato você deve ter uma opção--helpque traz todas as opções possíveis para execução (todas as consultas e como o usuário deve passar os parâmetros necessários em cada consulta)