WallpaperMachine
당신이 사랑하는 배경화면, 맥에서 새롭게 만나보세요
캐나다 도시를 안전·일자리·주거비·기후·대기질·교통·편의시설 순으로 자동 업데이트
Canadian cities ranked on safety, jobs, housing cost, climate, air quality, traffic and amenities. Updated automatically from public data.
라이프스타일Python · JavaScriptGitHub @imran-ahmed377온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Ranks 29 Canadian cities on living standards: the largest metro areas, with Toronto split into its ten biggest GTA cities (Toronto, Mississauga, Brampton, Markham, Vaughan, Oakville, Richmond Hill, Milton, Ajax, Pickering). Each is scored on:
All data comes from public APIs. A GitHub Actions workflow refreshes the data and republishes the dashboard every hour.
Live dashboard: https://imran-ahmed377.github.io/city_rank_ai/
| Category | Source | Key needed? |
|---|---|---|
| Climate, current weather, air quality | Open-Meteo (forecast, archive and air-quality APIs) | No |
| Safety | Statistics Canada – Crime Severity Index by metro area (35-10-0026-01) and by Ontario police service (35-10-0188-01) | No |
| Jobs & economy | Statistics Canada – Labour Force Survey (14-10-0459-01), Population estimates by metro area and municipality (17-10-0148-01, 17-10-0155-01) | No |
| Housing cost | CMHC average rents via Statistics Canada (34-10-0133-01) | No |
| Amenities | OpenStreetMap via the Overpass API | No |
| Traffic | TomTom Traffic Flow API | Yes (free tier) |
The scoring method is explained on the site and in SPEC.md.
python -m venv .venv
source .venv/bin/activate # Windows PowerShell: .\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
python -m pytest -q # tests
python -m city_rank # fetch data, score, build docs/
Then open docs/index.html in your browser.
Useful options:
| Command | What it does |
|---|---|
python -m city_rank --no-fetch | Rebuild the site from stored data only. |
python -m city_rank --only crime,jobs | Refresh specific sources. |
python -m city_rank --force | Refetch everything. |
TOMTOM_API_KEY=... python -m city_rank | Enable traffic sampling (only during weekday rush hours). |
TOMTOM_API_KEY.main, on GitHub's hourly schedule (best-effort, see below), and manually from the Actions tab. A manual run can refetch specific sources:
gh workflow run city-rank.yml -f only=population,crime (or -f force=true for everything).GitHub treats scheduled workflows as best-effort, and in practice runs this one only every 5–7 hours. Traffic needs a sample in every rush hour, so an external free cron service triggers the workflow every hour instead. GitHub's schedule stays as a backup; duplicate runs are harmless because each city is sampled at most once per hour.
city_rank_ai.https://api.github.com/repos/imran-ahmed377/city_rank_ai/actions/workflows/city-rank.yml/dispatchesAccept: application/vnd.github+jsonAuthorization: Bearer <your token>X-GitHub-Api-Version: 2022-11-28{"ref":"main"}Cost: everything here is free. Public repositories get unlimited Actions minutes; cron-job.org is free; TomTom usage stays under its free 2,500 requests/day (about 1,570 at most, with a hard stop at 2,200).
Fetched data and history are stored on the bot/data branch, so main contains only code.
The code is released under the MIT License. Copyright (c) 2026 Imran Ahmed.
The data shown on the site is not covered by this licence. It belongs to its providers and is used under their terms: