{"id":20930229,"url":"https://github.com/dpbm/coderchallenge-dsin-2023","last_synced_at":"2026-05-03T10:38:07.618Z","repository":{"id":200997687,"uuid":"706688580","full_name":"Dpbm/coderchallenge-dsin-2023","owner":"Dpbm","description":"Meu projeto para o DSIN Coder Challenge 2023","archived":false,"fork":false,"pushed_at":"2023-11-23T16:29:50.000Z","size":228,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-25T04:48:42.777Z","etag":null,"topics":["algorithms","blessed","challenge","coder","dsin","duck","interface","noejs","npm","pnpm","project","survival","terminal","zombies","zombies-game"],"latest_commit_sha":null,"homepage":"https://dpbm.github.io/coderchallenge-dsin-2023/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Dpbm.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-18T12:42:14.000Z","updated_at":"2023-10-22T14:46:30.000Z","dependencies_parsed_at":"2024-11-18T21:39:36.881Z","dependency_job_id":"9b09bf14-c1f8-4426-b4be-35c330df3c57","html_url":"https://github.com/Dpbm/coderchallenge-dsin-2023","commit_stats":null,"previous_names":["dpbm/coderchallenge-dsin-2023"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/Dpbm/coderchallenge-dsin-2023","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dpbm%2Fcoderchallenge-dsin-2023","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dpbm%2Fcoderchallenge-dsin-2023/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dpbm%2Fcoderchallenge-dsin-2023/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dpbm%2Fcoderchallenge-dsin-2023/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Dpbm","download_url":"https://codeload.github.com/Dpbm/coderchallenge-dsin-2023/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dpbm%2Fcoderchallenge-dsin-2023/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280906496,"owners_count":26411413,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-25T02:00:06.499Z","response_time":81,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algorithms","blessed","challenge","coder","dsin","duck","interface","noejs","npm","pnpm","project","survival","terminal","zombies","zombies-game"],"created_at":"2024-11-18T21:30:37.532Z","updated_at":"2025-10-25T04:48:42.925Z","avatar_url":"https://github.com/Dpbm.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DSIN codechallenge 2023\n\n\n\n\nhttps://github.com/Dpbm/coderchallenge-dsin-2023/assets/75098594/5019fba6-dab3-48fd-b0e8-ce6a0b51b74c\n\n\n\n![DockerHub workflow](https://github.com/Dpbm/coderchallenge-dsin-2023/actions/workflows/dockerhub.yml/badge.svg)\n![GHRC workflow](https://github.com/Dpbm/coderchallenge-dsin-2023/actions/workflows/ghrc.yml/badge.svg)\n\n\nNesse repositório, você encontrará a minha versão do segundo desafio do `DSIN Coderchallenge 2023`.\n\nMinha ideia para esse projeto foi utilizar `nodejs` e a biblioteca `blessed` para criar uma interface interessante baseada em terminal.\n\nAlé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:\n\n[![tabelas](./docs/tables.png)](./docs)\n\nPara 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.\n\n## requirimentos\n\nPara executar esse projeto você precisará de:\n\n* [nodejs](https://nodejs.org/en), versão `18.14.0` ou superior\n* [npm](https://www.npmjs.com/), ou similar, como um [pnpm](https://pnpm.io/)/[yarn](https://yarnpkg.com/)\n* [sqlite3](https://www.sqlite.org/index.html)\n\nalém disso, por estar usando `blessed`, é recomendado usar um terminal mais atual como:\n\n* [alacritty](https://github.com/alacritty/alacritty)\n* [tilix](https://github.com/gnunn1/tilix)\n* [windows terminal](https://github.com/microsoft/terminal)\n* [iterm2](https://github.com/microsoft/terminal)\n* [tabby](https://github.com/Eugeny/tabby)\n* [kitty](https://github.com/kovidgoyal/kitty)\n\n## executar\n\npara executar o projeto, primeiro clone o projeto, entre na pasta e instale todas as dependências:\n\n```bash\ngit clone https://github.com/Dpbm/coderchallenge-dsin-2023.git\ncd coderchallenge-dsin-2023\nnpm install\n```\n\napós tudo instalado, execute o projeto com:\n\n```bash\nnpm run start\n```\n\nSe preferir você pode usar a versão em docker rodando:\n\n```bash\ndocker run -it dpbm32/coderchallenge-dsin-2023\n```\n\nou\n\n```bash\ndocker-compose run app\n```\n\n`OBS: deixe o terminal em tela cheia para melhor experiência`.\n\n## navegando pelo software\n\nao executar, você se deparará com uma tela parecida com essa:\n\n![tela incial](./assets/menu.png)\n\npara 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.\n\n### Ação - Adicionar hospedeiro\n\n![hospedeiro](./assets/form.png)\n\nNa 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.\n\nPara 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.\n\nCaso você tenha entrado por engano nessa aba, aperte BACKSPACE e você será retornado para o menu.\n\n### Ação - Classificar zumbis\n\n![classificar](./assets/dados.png)\n\nNessa opção, você terá uma tabela com todos os dados dos hospedeiros adicionados, incluindo seus dados de força, velocidade e inteligência.\n\nCaso haja muitos dados na tela, use as setas (UP e DOWN) ou o mouse para descer ou subir a lista.\n\nPara retornar ao menu aperte BACKSPACE.\n\n## Ação - Pato\n\n![pato](./assets/pato.png)\n\nPor 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.\n\nApós o carregamento, o software mostrará uma mensagem com todos os dados e o que fazer.\n\n![pato-exemplo](./assets/pato_exemplo.png)\n\nPara voltar ao menu pressione BACKSPACE.\n\n## SAIR\n\nPara sair do projeto, aperte Ctrl+c\n\n## TODOS\n\nDevido ao tempo para a produção do projeto, algumas coisas ainda podem ser aprimoradas dentre elas estão:\n\n* abstrair melhor as funções\n* utilizar orientação a objetos\n* definir melhor as responsabilidades\n* melhorar os algoritmos usados\n\n## Problemas\n\nCaso 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.\n\nLembre-se de ser gentil e paciente :)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdpbm%2Fcoderchallenge-dsin-2023","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdpbm%2Fcoderchallenge-dsin-2023","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdpbm%2Fcoderchallenge-dsin-2023/lists"}