{"id":21000408,"url":"https://github.com/infinitemarcus/url-shortener-dio","last_synced_at":"2026-05-20T05:08:44.311Z","repository":{"id":111942420,"uuid":"450920426","full_name":"InfiniteMarcus/url-shortener-dio","owner":"InfiniteMarcus","description":"Encurtador de URL desenvolvido durante bootcamp da DIO","archived":false,"fork":false,"pushed_at":"2022-01-26T02:48:45.000Z","size":48,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-27T00:06:17.513Z","etag":null,"topics":["dio","dio-bootcamp","nodejs","typescript","url-shortener"],"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/InfiniteMarcus.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":"2022-01-22T19:51:11.000Z","updated_at":"2022-08-17T17:27:41.000Z","dependencies_parsed_at":"2023-03-23T19:04:44.817Z","dependency_job_id":null,"html_url":"https://github.com/InfiniteMarcus/url-shortener-dio","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/InfiniteMarcus/url-shortener-dio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InfiniteMarcus%2Furl-shortener-dio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InfiniteMarcus%2Furl-shortener-dio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InfiniteMarcus%2Furl-shortener-dio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InfiniteMarcus%2Furl-shortener-dio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/InfiniteMarcus","download_url":"https://codeload.github.com/InfiniteMarcus/url-shortener-dio/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InfiniteMarcus%2Furl-shortener-dio/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273868155,"owners_count":25182423,"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-09-06T02:00:13.247Z","response_time":2576,"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":["dio","dio-bootcamp","nodejs","typescript","url-shortener"],"created_at":"2024-11-19T08:10:24.937Z","updated_at":"2026-05-20T05:08:44.274Z","avatar_url":"https://github.com/InfiniteMarcus.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Encurator de URL - DIO\n\n## Propósito\n\nProjeto desenvolvido durante Bootcamp da [DIO](https://www.dio.me/sign-in) (Digital Innovation One).\n\nEsta aplicação é uma implementação de um encurtador de URLs, feita com TypeScript e MongoDB.\n\n## Alterações\n\nConsiderando a base do projeto desenvolvida durante o Bootcamp, algumas alterações foram feitas:\n- Adição de capturas de erros, tanto para requisições mal formadas quanto para problemas internos do servidor.\n- Correção de algumas partes do código base que foram depreciadas (principalmente no pacote `typegoose`)\n- Adição de coleção `URLAccess` para coletar dados dos redirecionamentos feitos pelas URLs encurtadas \n    - Nela são armazenados o hash da URL encurtada, o IP que soliticou a URL e a data da requisição. Essas informações poderiam ser usados, em um cenário real, para análises de dados no uso do serviço, respeitando as regulamentações necessários de coleta de dados\n- Adição de pacote `dotenv` para gerência de variáveis de ambiente\n\n## Execução\n\nPara testar o projeto, baixe os arquivos deste repositório em uma máquina com Node.js e NPM instalados.\n\nApós isso, siga o passo-a-passo:\n1. Utilize o comando `npm install` para instalar as dependências\n2. Crie um arquivo `.env` e preencha as variáveis de ambiente `API_URL` e `MONGO_CONNECTION`\n3. Utilize os scripts presentes no arquivo `package.json` para compilar e executar o código-fonte de acordo com as suas necessidades\n\n### Scripts\n\n- Compilação de código TypeScript: `npm run build`\n- Compilação de código TypeScript (recompilando mudanças no código-fonte): `npm run watch`\n- Para executar com Nodemon (ambiente de desenvolvimento): `npm run dev`\n- Para executar sem Nodemon (ambiente de produção): `npm start`","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfinitemarcus%2Furl-shortener-dio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finfinitemarcus%2Furl-shortener-dio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfinitemarcus%2Furl-shortener-dio/lists"}