{"id":19297353,"url":"https://github.com/neemiassgc/contact-manager-api","last_synced_at":"2026-04-18T03:32:23.863Z","repository":{"id":218639480,"uuid":"722854292","full_name":"neemiassgc/contact-manager-api","owner":"neemiassgc","description":"A RESTful api to manage contacts through CRUD operations. It was built with Java + Spring Boot + Postgres, protected with Spring Security + Oauth2 and deployed on App Angine with Supabase","archived":false,"fork":false,"pushed_at":"2025-07-25T04:36:58.000Z","size":499,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-25T09:35:58.732Z","etag":null,"topics":["auth0","crud","docker","google-cloud-app-engine","google-cloud-platform","gradle","hibernate","java","jpa","lombok","oauth2","portfolio","postgresql","spring-boot","spring-data-jpa","spring-security","spring-security-oauth2","sql","supabase","swagger"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/neemiassgc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2023-11-24T05:36:40.000Z","updated_at":"2025-07-25T04:37:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"6f3e4af0-063d-4e00-9bfc-f7b719d42d99","html_url":"https://github.com/neemiassgc/contact-manager-api","commit_stats":null,"previous_names":["neemiassgc/contacts-manager-api","neemiassgc/contact-manager-api"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/neemiassgc/contact-manager-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neemiassgc%2Fcontact-manager-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neemiassgc%2Fcontact-manager-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neemiassgc%2Fcontact-manager-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neemiassgc%2Fcontact-manager-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/neemiassgc","download_url":"https://codeload.github.com/neemiassgc/contact-manager-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neemiassgc%2Fcontact-manager-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31955712,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"online","status_checked_at":"2026-04-18T02:00:07.018Z","response_time":103,"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":["auth0","crud","docker","google-cloud-app-engine","google-cloud-platform","gradle","hibernate","java","jpa","lombok","oauth2","portfolio","postgresql","spring-boot","spring-data-jpa","spring-security","spring-security-oauth2","sql","supabase","swagger"],"created_at":"2024-11-09T23:03:56.568Z","updated_at":"2026-04-18T03:32:23.836Z","avatar_url":"https://github.com/neemiassgc.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[README in en-US :us:](https://github.com/neemiassgc/contact-manager-api/blob/main/README_en-US.md)\r\n# Contact Manager API\r\nUma API Rest multiusuário, testada e documentada para gerenciar contatos com o propósito de demonstrar operações CRUD.\r\n\r\n![GitHub commit activity](https://img.shields.io/github/commit-activity/t/neemiassgc/contacts-manager-api)\r\n![Tests](https://img.shields.io/badge/Tests-75-blue)\r\n![Core language](https://img.shields.io/badge/Language-Java-blue)\r\n![Core framework](https://img.shields.io/badge/Framework-Spring%20Boot-6DB33F?logo=spring-boot)\r\n![Core build](https://img.shields.io/badge/Build-Gradle-02303A?logo=gradle)\r\n![Postgres provider](https://img.shields.io/badge/Postgres-Supabase-3FCF8E?logo=supabase)\r\n![Authentication](https://img.shields.io/badge/Authentication-Oauth2-EB5424)\r\n\u003ca href=\"https://hub.docker.com/r/k4mek/contact-manager\" target=\"_blank\"\u003e\r\n    \u003cimg src=\"https://img.shields.io/badge/Container-Docker-2496ED?logo=docker\"/\u003e\r\n\u003c/a\u003e\r\n![Deployment on Cloud](https://img.shields.io/badge/Deployment-Google%20Cloud-4285F4?logo=google%20cloud)\r\n\u003ca href=\"https://mythic-guild-431115-g2.uc.r.appspot.com/swagger-ui/index.html\" target=\"_blank\"\u003e\r\n    \u003cimg src=\"https://img.shields.io/badge/Documentation-Swagger-85EA2D?logo=swagger\"/\u003e\r\n\u003c/a\u003e\r\n\r\n### Destaques :sparkles:\r\n* Spring Boot + Spring Security integrado com Oauth2 atuando como servidor de recursos\r\n* Spring Data JPA com Hibernate\r\n* Postgres em nuvem fornecido pelo Supabase\r\n* Multiusuário\r\n* Documentada com Swagger ([link para documentação](https://mythic-guild-431115-g2.uc.r.appspot.com/swagger-ui/index.html))\r\n* Imagem Docker no [Docker Hub](https://hub.docker.com/r/k4mek/contact-manager)\r\n* Implantada no Google Cloud App Engine\r\n\r\n### Diagrama do Banco de dados :page_facing_up:\r\n\u003cimg src=\"https://static-10.s3.sa-east-1.amazonaws.com/contact-manager-api/contact-manager-schema.png\" width=\"960\" height=\"540\"/\u003e\r\n\r\n### Demostração :fire:\r\nVisite o projeto [Contact Manager UI](https://github.com/neemiassgc/contact-manager-ui) que cria uma interface Web para usar esta API.\r\n\r\n### Test :test_tube:\r\nPara executar os tests, é necessário um banco de dados Postgres. Para fazer isso, com o repositório já clonado, entre na raiz do projeto e execute o seguinte comando docker:\r\n```bash\r\ndocker compose -f docker/postgres.yml up -d\r\n```\r\nEntão use Gradle para executar os tests:\r\n```bash\r\n./gradlew test\r\n```\r\n\r\n### Execute localmente usando docker :cyclone:\r\nBasta apenas usar o seguinte comando ```docker compose``` na raiz do projeto para ter a aplicação rodando:\r\n```bash\r\ndocker compose -f docker/app.yml up -d\r\n```\r\nDepois disso, a API pode ser acessado em http://localhost:8080. Obs: Um token JWT é necessário para acessar a API.\r\n\r\n### Licença :memo:\r\nEsse projeto está sob a Mit License\r\n\u003cimg src=\"https://mythic-guild-431115-g2.uc.r.appspot.com/files/swagger-badge.svg\" width=\"0\" height=\"0\"/\u003e\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneemiassgc%2Fcontact-manager-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fneemiassgc%2Fcontact-manager-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneemiassgc%2Fcontact-manager-api/lists"}