{"id":23240752,"url":"https://github.com/wilddev/geo","last_synced_at":"2025-10-04T03:46:33.677Z","repository":{"id":277089057,"uuid":"866440183","full_name":"WildDev/geo","owner":"WildDev","description":"Restful geographic service","archived":false,"fork":false,"pushed_at":"2025-05-27T22:21:19.000Z","size":111,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-27T23:25:41.431Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc-by-sa-4.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WildDev.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":"2024-10-02T09:08:11.000Z","updated_at":"2025-05-27T22:21:22.000Z","dependencies_parsed_at":"2025-02-12T04:32:23.380Z","dependency_job_id":"8fb6388c-2dbf-4761-b151-bd52b77f42fe","html_url":"https://github.com/WildDev/geo","commit_stats":null,"previous_names":["wilddev/geo"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/WildDev/geo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WildDev%2Fgeo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WildDev%2Fgeo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WildDev%2Fgeo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WildDev%2Fgeo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WildDev","download_url":"https://codeload.github.com/WildDev/geo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WildDev%2Fgeo/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262996340,"owners_count":23396902,"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":[],"created_at":"2024-12-19T05:13:57.977Z","updated_at":"2025-10-04T03:46:28.635Z","avatar_url":"https://github.com/WildDev.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"### Description\n\nGeographic data related service. Currently, is only integrated with [ipstack](https://ipstack.com)\n\n[![Java CI with Maven](https://github.com/WildDev/geo/actions/workflows/maven.yml/badge.svg)](https://github.com/WildDev/geo/actions/workflows/maven.yml) [![Docker Image CI](https://github.com/WildDev/geo/actions/workflows/docker-image.yml/badge.svg)](https://github.com/WildDev/geo/actions/workflows/docker-image.yml)\n\n### How it works\n\n##### Find user location based on its ip\n1. Configure proxy to set `X-Real-IP` header\n2. Route traffic to the service\n3. Send a request\n\nExample:\n```cmd\ncurl \"https://test.website/location/find\" -H \"X-Real-IP: 127.0.0.1\" -v\n\n\u003c HTTP/1.1 200\n\u003c Content-Type: application/json\n\u003c\n{\n    \"country\": {\n        \"code\": \"DE\",\n        \"name\": \"Germany\"\n    },\n    \"city\": \"Dusseldorf\"\n}\n```\n\n##### Search locations manually with the autocomplete\n\nUse `q` request param to search predefined locations by a sample string. The search is performed in `startsWith` fashion on top of a qualifier with `city country` format:\n\nExample\n```cmd\ncurl \"https://test.website/location/list?q=Istanbul\u002620Turk\" -v\n\n\u003c HTTP/1.1 200 \n\u003c Content-Type: application/json\n\u003c\n[\n    {\n        \"country\": {\n            \"code\": \"TR\",\n            \"name\": \"Turkey\"\n        },\n        \"city\": \"Istanbul\"\n    },\n    {\n        \"country\": {\n            \"code\": \"TR\",\n            \"name\": \"Turkey\"\n        },\n        \"city\": \"Istanbul Old Town\"\n    },\n    {\n        \"country\": {\n            \"code\": \"TR\",\n            \"name\": \"Turkey\"\n        },\n        \"city\": \"Istanbulbogazi\"\n    }\n]\n```\n\n\u003e [!WARNING]\n\u003e The search is case sensitive\n\n### Get started\n\nBuild requirements:\n* latest JDK and Maven\n\nRuntime stack:\n* Java 20+ (none for the GraalVM image version)\n* API credentials for [ipstack](https://ipstack.com)\n\nCheckout the project and build it using `mvn package` command\n\nAn example run:\n\n```cmd\njava -jar -Xmx256M target/geo.jar \\\n    --server.port=8000 \\\n    --spring.cors.allowed-origins=https://test.website \\\n    --spring.data.mongodb.uri=\"mongodb+srv://geo:test@mongodb.example.com/geo?tls=true\u0026authSource=admin\u0026replicaSet=mongodb\" \\\n    --integration.ipstack.url=https://api.ipstack.com \\\n    --integration.ipstack.access-key=723953e7b0e27c762c38213b7c71fd77\n```\n\nAlso available on [Docker Hub](https://hub.docker.com/r/wilddev/geo)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwilddev%2Fgeo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwilddev%2Fgeo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwilddev%2Fgeo/lists"}