Skip to content

Commit 8a1c09f

Browse files
committed
added readme
1 parent b6fc214 commit 8a1c09f

File tree

6 files changed

+105
-0
lines changed

6 files changed

+105
-0
lines changed

assets/dados.png

43.4 KB
Loading

assets/form.png

38.1 KB
Loading

assets/menu.png

15.6 KB
Loading

assets/pato.png

10.8 KB
Loading

assets/pato_exemplo.png

56.3 KB
Loading

readme.md

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
# DSIN codechallenge 2023
2+
3+
Nesse repositório, você encontrará a minha versão do segundo desafio do `DSIN Coderchallenge 2023`.
4+
5+
Minha ideia para esse projeto foi utilizar `nodejs` e a biblioteca `blessed` para criar uma interface interessante baseada em terminal.
6+
7+
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:
8+
9+
[![tabelas](./docs/tables.png)](./docs)
10+
11+
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.
12+
13+
## requirimentos
14+
15+
Para executar esse projeto você precisará de:
16+
17+
* [nodejs](https://nodejs.org/en), versão `18.14.0` ou superior
18+
* [npm](https://www.npmjs.com/), ou similar, como um [pnpm](https://pnpm.io/)/[yarn](https://yarnpkg.com/)
19+
* [sqlite3](https://www.sqlite.org/index.html)
20+
21+
além disso, por estar usando `blessed`, é recomendado usar um terminal mais atual como:
22+
23+
* [alacritty](https://github.com/alacritty/alacritty)
24+
* [tilix](https://github.com/gnunn1/tilix)
25+
* [windows terminal](https://github.com/microsoft/terminal)
26+
* [iterm2](https://github.com/microsoft/terminal)
27+
* [tabby](https://github.com/Eugeny/tabby)
28+
* [kitty](https://github.com/kovidgoyal/kitty)
29+
30+
## executar
31+
32+
para executar o projeto, primeiro clone o projeto, entre na pasta e instale todas as dependências:
33+
34+
```bash
35+
git clone https://github.com/Dpbm/coderchallenge-dsin-2023.git
36+
cd coderchallenge-dsin-2023
37+
npm install
38+
```
39+
40+
após tudo instalado, execute o projeto com:
41+
42+
```bash
43+
npm run start
44+
```
45+
46+
`OBS: deixe o terminal em tela cheia para melhor experiência`.
47+
48+
## navegando pelo software
49+
50+
ao executar, você se deparará com uma tela parecida com essa:
51+
52+
![tela incial](./assets/menu.png)
53+
54+
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.
55+
56+
### Ação - Adicionar hospedeiro
57+
58+
![hospedeiro](./assets/form.png)
59+
60+
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.
61+
62+
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.
63+
64+
Caso você tenha entrado por engano nessa aba, aperte BACKSPACE e você será retornado para o menu.
65+
66+
### Ação - Classificar zumbis
67+
68+
![classificar](./assets/dados.png)
69+
70+
Nessa opção, você terá uma tabela com todos os dados dos hospedeiros adicionados, incluindo seus dados de força, velocidade e inteligência.
71+
72+
Caso haja muitos dados na tela, use as setas (UP e DOWN) ou o mouse para descer ou subir a lista.
73+
74+
Para retornar ao menu aperte BACKSPACE.
75+
76+
## Ação - Pato
77+
78+
![pato](./assets/pato.png)
79+
80+
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.
81+
82+
Após o carregamento, o software mostrará uma mensagem com todos os dados e o que fazer.
83+
84+
![pato-exemplo](./assets/pato_exemplo.png)
85+
86+
Para voltar ao menu pressione BACKSPACE.
87+
88+
## SAIR
89+
90+
Para sair do projeto, aperte Ctrl+c
91+
92+
## TODOS
93+
94+
Devido ao tempo para a produção do projeto, algumas coisas ainda podem ser aprimoradas dentre elas estão:
95+
96+
* abstrair melhor as funções
97+
* utilizar orientação a objetos
98+
* definir melhor as responsabilidades
99+
* melhorar os algoritmos usados
100+
101+
## Problemas
102+
103+
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.
104+
105+
Lembre-se de ser gentil e paciente :)

0 commit comments

Comments
 (0)