https://github.com/ngshiheng/passportindexdb
Tracking historical changes in passport rankings and visa requirements
https://github.com/ngshiheng/passportindexdb
datasette ghactions-scraping git-scraping passport visa visa-application visa-requirements
Last synced: 3 months ago
JSON representation
Tracking historical changes in passport rankings and visa requirements
- Host: GitHub
- URL: https://github.com/ngshiheng/passportindexdb
- Owner: ngshiheng
- License: mit
- Created: 2024-12-07T14:35:50.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2026-03-15T12:58:50.000Z (4 months ago)
- Last Synced: 2026-03-15T13:05:21.026Z (4 months ago)
- Topics: datasette, ghactions-scraping, git-scraping, passport, visa, visa-application, visa-requirements
- Language: Python
- Homepage: https://www.kaggle.com/datasets/ngshiheng/henley-passport-index-visa-requirements
- Size: 85.9 KB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Passport Index DB
Tracking historical changes in passport rankings and visa requirements.
[Read more...](https://jerrynsh.com/i-built-a-visa-requirement-change-tracker-for-fun/)
## How This Works
```mermaid
graph TB
subgraph Railway
deployment[Datasette]
end
subgraph GitHub
subgraph Actions
scraper[Scraper]
end
subgraph Artifacts
db[(passportindex.db)]
class db artifacts;
end
end
subgraph Henley Passport Index
api[API]
end
subgraph Docker
dockerhub[Docker Hub]
end
subgraph Kaggle
kaggle[Dataset]
end
db --> |1: Download| scraper
api --> |2: Fetch Data| scraper
scraper --> |3: Upload| db
scraper --> |4: Publish to Docker Hub| dockerhub
scraper --> |5: Publish to Kaggle| kaggle
dockerhub --> |6: Pull image and Deploy| deployment
deployment --> |7: View/Access Data| client[User]
kaggle --> |7: View/Access Data| client[User]
```
## Database Schema
```mermaid
erDiagram
Country ||--o{ CountryRanking : has
Country ||--o{ VisaRequirement : "issues/receives"
Country {
text code PK
text name
text region
}
CountryRanking {
text country_code PK, FK
int year PK
int rank
int visa_free_count
}
VisaRequirement {
text from_country PK, FK
text to_country PK, FK
date effective_date PK
text requirement_type
}
```
## Usage
```sh
❯ make
Welcome to passportindexdb [development].
Use make where is one of:
Helper
help display this help message.
Usage
run run scraper.
inspect generate inspect file for performance optimization.
datasette run datasette with optimizations.
test run unit tests.
Docker
docker-build build datasette docker image.
docker-push build and push docker images to registry.
Kaggle
kaggle-export export Kaggle dataset CSVs into data/ directory.
kaggle-push export and upload dataset to Kaggle.
Contributing
setup-dev install development dependencies including required Datasette plugins
```
## License
This project is licensed under the [MIT License](./LICENSE).
## Disclaimer
This 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.