{"id":16317135,"url":"https://github.com/hdev14/teste-allugator-backend","last_synced_at":"2025-08-16T11:07:28.849Z","repository":{"id":117211456,"uuid":"312385939","full_name":"hdev14/teste-allugator-backend","owner":"hdev14","description":"API RESTful para consultar dados de funcionários.","archived":false,"fork":false,"pushed_at":"2020-11-15T15:48:23.000Z","size":266,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-13T16:15:20.741Z","etag":null,"topics":["apirestfull","mongodb","nodejs","swagger","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/hdev14.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":"2020-11-12T20:17:45.000Z","updated_at":"2021-05-28T23:09:23.000Z","dependencies_parsed_at":null,"dependency_job_id":"789037d9-82d3-429f-8865-52af162181c2","html_url":"https://github.com/hdev14/teste-allugator-backend","commit_stats":{"total_commits":84,"total_committers":2,"mean_commits":42.0,"dds":"0.023809523809523836","last_synced_commit":"225adeba6dd14616f4a87fdcb263d19c1e1d9733"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hdev14/teste-allugator-backend","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hdev14%2Fteste-allugator-backend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hdev14%2Fteste-allugator-backend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hdev14%2Fteste-allugator-backend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hdev14%2Fteste-allugator-backend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hdev14","download_url":"https://codeload.github.com/hdev14/teste-allugator-backend/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hdev14%2Fteste-allugator-backend/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270702562,"owners_count":24630877,"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-08-16T02:00:11.002Z","response_time":91,"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":["apirestfull","mongodb","nodejs","swagger","typescript"],"created_at":"2024-10-10T22:07:07.976Z","updated_at":"2025-08-16T11:07:28.824Z","avatar_url":"https://github.com/hdev14.png","language":"TypeScript","readme":"\u003ch1 align=\"center\"\u003e Teste Allugator (Backend)\u003c/h1\u003e\n\n# Solução\n\nMinha proposta para esse teste foi desenvolver um endpoint para cada tipo de filtro especifico e para as outras operações (PUT/DELETE). Eu pensei incialmente em colocar as requisições do tipo GET em apenas um endpoint (GET:/employees), porém depois de pensar melhor, resolvi seguir essa abordagem, porque um único endpoint recebendo muitos filtros é considerado uma má prática. Dessa forma, para continuar seguindo o estilo arquitural REST definir um subpath especificando qual seria o tipo do filtro, por exemplo, ```/employees/uf``` que é destinado a fazer consultas por UF de nascimento do funcionário.\n\n# Uso\n\n## Pre-requisitos\n\nPara iniciar esse projeto é necessário primeiramente instalar todas as dependências e tecnologias para executar o ambiente de desenvolvimento.\n\n- [Node \u0026 NPM](https://nodejs.org/en/)\n- [Docker](https://docs.docker.com/engine/install/) \u0026 [Docker-compose](https://docs.docker.com/compose/install/)\n\n### Instalar dependências\n\n```sh\n$ npm install\n```\n\n## Execução\n\nApós o download/instalação de todas as tecnologias e dependências, basta seguir esses passos:\n\n1. Execute o **docker-compose**:\n```sh\n$ docker-compose up -d\n```\n2. Copie o arquivo env.example e coloque os valores corretos para as variáveis de ambiente:\n```sh\n$ cp .env.example .env\n```\n3. Execute o comando de seed para popular o banco de dados a partir do arquivo *employees.txt*:\n```sh\n$ npm run seed\n```\n4. Execute o projeto em modo de desenvolvimento:\n```sh\n$ npm run dev\n```\n\n## TDD\n\nEsse projeto foi todo desenvolvido utilizando a metodologia de desenvolvimento Test Driven Development, por isso também foram criados alguns testes de integração e de unidade. Para executar os testes, basta utilizar o seguinte comando:\n```sh\n$ npm run test\n```\n\n## Tecnologias utilizadas\n\n- [X] NodeJS com Typescript;\n- [X] ExpressJS;\n- [X] Mongodb;\n- [X] Docker e Docker-compose;\n- [X] Jest com Supertest e jest Mongo (Testes);\n- [X] ESLint e Editorconfig;\n- [X] Husky e Lint-Staged;\n\n## Documentação da API\n\nCom o modo de desenvolvimento em execução é possível verificar a documentação da API feita com [Swagger](https://swagger.io/), basta consultar a URL ```http://localhost:4444/docs/``` no browser.\n\n\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhdev14%2Fteste-allugator-backend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhdev14%2Fteste-allugator-backend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhdev14%2Fteste-allugator-backend/lists"}