{"id":23299001,"url":"https://github.com/ngshiheng/passportindexdb","last_synced_at":"2026-04-30T15:32:04.431Z","repository":{"id":266999158,"uuid":"899977863","full_name":"ngshiheng/passportindexdb","owner":"ngshiheng","description":"Tracking historical changes in passport rankings and visa requirements","archived":false,"fork":false,"pushed_at":"2026-03-15T12:58:50.000Z","size":88,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-15T13:05:21.026Z","etag":null,"topics":["datasette","ghactions-scraping","git-scraping","passport","visa","visa-application","visa-requirements"],"latest_commit_sha":null,"homepage":"https://www.kaggle.com/datasets/ngshiheng/henley-passport-index-visa-requirements","language":"Python","has_issues":true,"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/ngshiheng.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-12-07T14:35:50.000Z","updated_at":"2026-03-15T12:58:53.000Z","dependencies_parsed_at":null,"dependency_job_id":"f8c5d11d-1765-4ff3-828d-2ed86268d3b7","html_url":"https://github.com/ngshiheng/passportindexdb","commit_stats":null,"previous_names":["ngshiheng/passportindexdb"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ngshiheng/passportindexdb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngshiheng%2Fpassportindexdb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngshiheng%2Fpassportindexdb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngshiheng%2Fpassportindexdb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngshiheng%2Fpassportindexdb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ngshiheng","download_url":"https://codeload.github.com/ngshiheng/passportindexdb/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngshiheng%2Fpassportindexdb/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32469344,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"ssl_error","status_checked_at":"2026-04-30T13:12:06.837Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["datasette","ghactions-scraping","git-scraping","passport","visa","visa-application","visa-requirements"],"created_at":"2024-12-20T08:13:49.426Z","updated_at":"2026-04-30T15:32:04.425Z","avatar_url":"https://github.com/ngshiheng.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Passport Index DB\n\nTracking historical changes in passport rankings and visa requirements.\n\n[Read more...](https://jerrynsh.com/i-built-a-visa-requirement-change-tracker-for-fun/)\n\n## How This Works\n\n```mermaid\ngraph TB\n    subgraph Railway\n        deployment[Datasette]\n    end\n    subgraph GitHub\n        subgraph Actions\n            scraper[Scraper]\n        end\n        subgraph Artifacts\n            db[(passportindex.db)]\n            class db artifacts;\n        end\n    end\n    subgraph Henley Passport Index\n        api[API]\n    end\n    subgraph Docker\n        dockerhub[Docker Hub]\n    end\n    subgraph Kaggle\n        kaggle[Dataset]\n    end\n    db --\u003e |1: Download| scraper\n    api --\u003e |2: Fetch Data| scraper\n    scraper --\u003e |3: Upload| db\n    scraper --\u003e |4: Publish to Docker Hub| dockerhub\n    scraper --\u003e |5: Publish to Kaggle| kaggle\n    dockerhub --\u003e |6: Pull image and Deploy| deployment\n    deployment --\u003e |7: View/Access Data| client[User]\n    kaggle --\u003e |7: View/Access Data| client[User]\n```\n\n## Database Schema\n\n```mermaid\nerDiagram\n    Country ||--o{ CountryRanking : has\n    Country ||--o{ VisaRequirement : \"issues/receives\"\n\n    Country {\n        text code PK\n        text name\n        text region\n    }\n\n    CountryRanking {\n        text country_code PK, FK\n        int year PK\n        int rank\n        int visa_free_count\n    }\n\n    VisaRequirement {\n        text from_country PK, FK\n        text to_country PK, FK\n        date effective_date PK\n        text requirement_type\n    }\n```\n\n## Usage\n\n```sh\n❯ make\nWelcome to passportindexdb [development].\nUse make \u003ctarget\u003e where \u003ctarget\u003e is one of:\n\nHelper\n  help             display this help message.\n\nUsage\n  run              run scraper.\n  inspect          generate inspect file for performance optimization.\n  datasette        run datasette with optimizations.\n  test             run unit tests.\n\nDocker\n  docker-build     build datasette docker image.\n  docker-push      build and push docker images to registry.\n\nKaggle\n  kaggle-export    export Kaggle dataset CSVs into data/ directory.\n  kaggle-push      export and upload dataset to Kaggle.\n\nContributing\n  setup-dev        install development dependencies including required Datasette plugins\n```\n\n## License\n\nThis project is licensed under the [MIT License](./LICENSE).\n\n## Disclaimer\n\nThis software is only used for research purposes, users must abide by the relevant laws and regulations of their location, please do not use it for illegal purposes. The user shall bear all the consequences caused by illegal use.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fngshiheng%2Fpassportindexdb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fngshiheng%2Fpassportindexdb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fngshiheng%2Fpassportindexdb/lists"}