project-example.mp4
Nesse repositório, você encontrará a minha versão do segundo desafio do DSIN Coderchallenge 2023
.
Minha ideia para esse projeto foi utilizar nodejs
e a biblioteca blessed
para criar uma interface interessante baseada em terminal.
Além disso, para o armazenamento dos dados, foi usado o banco de dados sqlite3
, pela sua simplicidade e velocidade, usando a seguinte estrutura de tabelas:
Para diminuir o tempo de execução, todas as informações necessárias são processadas apenas uma vez e armazenadas no banco, assim ao precisar de um dado, é necessário apenas acessar uma tabela do sqlite.
Para executar esse projeto você precisará de:
além disso, por estar usando blessed
, é recomendado usar um terminal mais atual como:
para executar o projeto, primeiro clone o projeto, entre na pasta e instale todas as dependências:
git clone https://github.com/Dpbm/coderchallenge-dsin-2023.git
cd coderchallenge-dsin-2023
npm install
após tudo instalado, execute o projeto com:
npm run start
Se preferir você pode usar a versão em docker rodando:
docker run -it dpbm32/coderchallenge-dsin-2023
ou
docker-compose run app
OBS: deixe o terminal em tela cheia para melhor experiência
.
ao executar, você se deparará com uma tela parecida com essa:
para navegar entre o menu, use as setas do teclado (UP e DOWN). Ao para na opção desejada aperte entre para entrar na opção.
Na opção adicionar hospedeiro
, você terá um formulário, para preencher os dados dele, caso algum dado informado não esteja conforme o esperado, uma mensagem aparecerá e mostrará o erro.
Para entrar em cada campo, use, novamente, as setas do teclado (UP e DOWN) e escreva do dado. Ao inserir todos os dados, aperte ENTER uma vez para sair dos campos, e aperte novamente para enviar.
Caso você tenha entrado por engano nessa aba, aperte BACKSPACE e você será retornado para o menu.
Nessa opção, você terá uma tabela com todos os dados dos hospedeiros adicionados, incluindo seus dados de força, velocidade e inteligência.
Caso haja muitos dados na tela, use as setas (UP e DOWN) ou o mouse para descer ou subir a lista.
Para retornar ao menu aperte BACKSPACE.
Por fim, a ação Pato
, simulará o encontro com um zumbi, pegando aleatoriamente no banco um zumbi e descrevendo seus atributos e como o sistema pode fazer para o pato atacar ou se defender.
Após o carregamento, o software mostrará uma mensagem com todos os dados e o que fazer.
Para voltar ao menu pressione BACKSPACE.
Para sair do projeto, aperte Ctrl+c
Devido ao tempo para a produção do projeto, algumas coisas ainda podem ser aprimoradas dentre elas estão:
- abstrair melhor as funções
- utilizar orientação a objetos
- definir melhor as responsabilidades
- melhorar os algoritmos usados
Caso você encontre algum erro ou melhoria durante alguma etapa, sinta-se à vontade para abrir uma issue. E, caso você saiba como resolver, abra um pull request com a sua solução.
Lembre-se de ser gentil e paciente :)