{"id":23412638,"url":"https://github.com/gusmaomatheus/bossabox-code-challenge","last_synced_at":"2026-04-08T18:04:36.474Z","repository":{"id":214709807,"uuid":"737150810","full_name":"gusmaomatheus/bossabox-code-challenge","owner":"gusmaomatheus","description":"Code challenge: API to manage productivity tools.","archived":false,"fork":false,"pushed_at":"2024-01-04T04:37:22.000Z","size":139,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-09T04:09:59.634Z","etag":null,"topics":["code-challenge","docker","java","jwt","maven","postgresql","spring-boot","swagger"],"latest_commit_sha":null,"homepage":"https://bossabox.notion.site/Back-end-0b2c45f1a00e4a849eefe3b1d57f23c6","language":"Java","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/gusmaomatheus.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-12-30T01:40:20.000Z","updated_at":"2024-09-29T04:40:09.000Z","dependencies_parsed_at":"2025-02-14T22:27:28.087Z","dependency_job_id":"a964c253-5683-49b9-b431-b5db3f84bf99","html_url":"https://github.com/gusmaomatheus/bossabox-code-challenge","commit_stats":null,"previous_names":["gusmaomatheus/bossabox-backend-challenge","gusmaomatheus/bossabox-code-challenge"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gusmaomatheus/bossabox-code-challenge","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gusmaomatheus%2Fbossabox-code-challenge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gusmaomatheus%2Fbossabox-code-challenge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gusmaomatheus%2Fbossabox-code-challenge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gusmaomatheus%2Fbossabox-code-challenge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gusmaomatheus","download_url":"https://codeload.github.com/gusmaomatheus/bossabox-code-challenge/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gusmaomatheus%2Fbossabox-code-challenge/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264972152,"owners_count":23691375,"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","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":["code-challenge","docker","java","jwt","maven","postgresql","spring-boot","swagger"],"created_at":"2024-12-22T18:17:42.283Z","updated_at":"2025-12-30T22:09:33.410Z","avatar_url":"https://github.com/gusmaomatheus.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# VUUTR - Very Useful Tools To Remember\n\n## Descrição:\n\nUma API REST e banco de dados para a aplicação VUTTR (Very Useful Tools to Remember). A aplicação é um simples repositório para gerenciar ferramentas com seus respectivos nomes, links, descrições e tags. Você pode verificar o desafio com mais detalhes acessando o [link oficial](https://bossabox.notion.site/Back-end-0b2c45f1a00e4a849eefe3b1d57f23c6) disponibilizado pela própria BossaBox.\n\n## Tecnologias Utilizadas:\n\n- [Spring Framework](https://spring.io/projects/spring-boot) 🍃\n  - [Spring Web](https://docs.spring.io/spring-boot/docs/current/reference/html/web.html) 🕸️\n  - [Spring Data JPA](https://spring.io/projects/spring-data) 🎲\n  - [Spring Validation](https://docs.spring.io/spring-framework/reference/core/validation/beanvalidation.html) ✅\n  - [Spring Security](https://docs.spring.io/spring-security/reference/index.html) 🔐\n- [Maven](https://maven.apache.org/guides/index.html) 🪶\n- [Docker](https://docs.docker.com/) 🐳\n- [PostgreSQL](https://www.postgresql.org/docs/) 🐘\n- [Flyway](https://flywaydb.org/postgresql) 🐦\n- [Lombok](https://projectlombok.org/) 🌶\n- [JWT Auth](https://jwt.io/introduction) 🎡\n- [Springdoc](https://springdoc.org/) 📄\n\n## Como executar a aplicação:\n\n### Requisitos:\n\n- Possuir o [Docker](https://docs.docker.com/engine/install/) instalado.\n\n### Como executar:\n\n- Clonar o repositório:\n\n```bash\n$ git clone git@github.com:gusmaomatheus/bossabox-code-challenge.git\n``` \n\n- Acessar o diretório baixado:\n\n```bash\n$ cd C:\\local_onde_salvou\\bossabox-code-challenge\n``` \n\n- Criar a imagem da aplicação:\n\n```bash\n$ docker-compose up -d\n``` \n\n- Executar a imagem:\n\n```bash\n$ docker run -p 3000:3000 vuttr\n``` \n\n### Como se autenticar na aplicação:\n\n- Primeiro você deve possuir alguma ferramente que facilite o envio de requisições HTTP para a aplicação, como: [Postman](https://www.postman.com/downloads/), [Insomnia](https://insomnia.rest/download), [Bruno](https://www.usebruno.com/downloads). (obs: usei o Bruno para as seguintes prints de exemplo)\n\n\n- Após isso você deve enviar uma requisição para o endpoint de register (`localhost://3000:vuttr/auth/register`):\n      \n```json\n{\n  \"username\": \"admin\",\n  \"password\": \"password\",\n  \"role\": \"ADMIN\"\n}\n```\n\nobs: lembrando que para requisições dos tipos POST, PUT e DELETE, o role do usuário deve ser ADMIN, para todas as outras o cargo pode ser tanto COMMON quanto ADMIN.\n\n- Depois, no endpoint de login (`localhost://3000:vuttr/auth/login`), você deve enviar uma requisição também:\n\n```json\n{\n  \"username\": \"admin\",\n  \"password\": \"password\"\n}\n```\n\n- Se as credenciais estiverem certas, o retorno esperado será o seguinte:\n\n```json\n{\n  \"status\": \"OK\",\n  \"message\": \"Successful logging in to user 'user'\",\n  \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJhdXRoLWFwaSIsInN1YiI6InVzZXIiLCJleHAiOjE3MDQzNDk4Mjd9.4WDtWJURcOFgpdUIQWa9MUvOy8BuCbaXyFh4nkz_38s\"\n}\n```\n\n- Após isso, você deve usar esse token em todas as requisições que você fazer nos endpoints `http://localhost:3000/vuttr/tools/**`\n\n![Exemplo](https://imgur.com/vv9vFLA.png)\n\n## Documentação:\n\nA API contém documentação completa criada utilizando o Springdoc da OpenAPI (anteriormente Swagger), abordando todos os detalhes necessários para entender o seu funcionamento. A documentação pode ser acessada em http://localhost:3000/swagger-ui/index.html","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgusmaomatheus%2Fbossabox-code-challenge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgusmaomatheus%2Fbossabox-code-challenge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgusmaomatheus%2Fbossabox-code-challenge/lists"}