{"id":16604740,"url":"https://github.com/mavroprovato/fuelpricesgr","last_synced_at":"2025-07-06T21:35:05.872Z","repository":{"id":59423761,"uuid":"519360441","full_name":"mavroprovato/fuelpricesgr","owner":"mavroprovato","description":"Database of fuel prices in Greece","archived":false,"fork":false,"pushed_at":"2025-02-01T15:10:08.000Z","size":1275,"stargazers_count":13,"open_issues_count":4,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-18T02:03:10.999Z","etag":null,"topics":["fastapi","python"],"latest_commit_sha":null,"homepage":"","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/mavroprovato.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}},"created_at":"2022-07-29T22:06:42.000Z","updated_at":"2025-02-01T15:10:12.000Z","dependencies_parsed_at":"2023-12-21T05:08:27.266Z","dependency_job_id":"20002ece-77d3-46db-95fc-02ebab9ecb12","html_url":"https://github.com/mavroprovato/fuelpricesgr","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mavroprovato%2Ffuelpricesgr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mavroprovato%2Ffuelpricesgr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mavroprovato%2Ffuelpricesgr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mavroprovato%2Ffuelpricesgr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mavroprovato","download_url":"https://codeload.github.com/mavroprovato/fuelpricesgr/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244815071,"owners_count":20514878,"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":["fastapi","python"],"created_at":"2024-10-12T00:59:10.698Z","updated_at":"2025-07-06T21:35:05.862Z","avatar_url":"https://github.com/mavroprovato.png","language":"Python","funding_links":[],"categories":["fastapi"],"sub_categories":[],"readme":"# Fuel Prices\n\nThe purpose of this project is to create a database of fuel prices in Greece. Daily and weekly data about fuel prices\nare regularly uploaded at the [Παρατηρητήριο Τιμών Υγρών Καυσίμων](http://www.fuelprices.gr) website by the Greek\nGovernment, but the data are published as PDF files. In order to process the data more easily, this project fetches\nthose PDF files, extracts the data from them, inserts them in a database, and exposes them in an API.\n\nData are available since:\n\n* 2012-04-27 for weekly country data\n* 2012-05-04 for weekly prefecture data\n* 2017-08-28 for daily country data\n* 2017-03-14 for daily prefecture data\n\n## Running the API\n\nThe backend API is a [Python](https://www.python.org) based project, built with [FastAPI](https://fastapi.tiangolo.com),\nthat uses [uv](https://docs.astral.sh/uv/) for dependency management. In order to install uv, you need to run:\n\n```shell\ncurl -LsSf https://astral.sh/uv/install.sh | sh\n```\n\nIf you don't have the required Python version install, you need to run\n\n```shell\nuv python install 3.13\n```\n\nBy default, the data are stored in an [SQLite](https://www.sqlite.org) database. In order to fetch the data you need to\nrun:\n\n```\nuv run python -m fuelpricesgr.commands.import\n```\n\nThis command accepts various parameters to limit the data to be fetched. You can see them by running\n\n```\nuv run python -m fuelpricesgr.commands.import --help\n```\n\nNow you can launch the API by running the command:\n\n```\nuv run uvicorn fuelpricesgr.main:app\n```\n\nThe API is now available at http://localhost:8000. The documentation for the API is available at\nhttp://localhost:8000/docs.\n\n\n## Running with docker\n\nIn order to build the Docker image run\n\n```\ndocker build -t mavroprovato/fuelpricesgr .\n```\n\nIn order to run the docker image run\n\n```\ndocker run -p 8000:8000 mavroprovato/fuelpricesgr\n```\n\n## Development\n\nIn order to run the application tests, run\n\n```\nuv run pytest\n```\n\nIn order to get the test coverage report, run\n\n```\nuv run coverage run -m pytest .\n```\n\nThis will generate an HTML coverage report in `htmlcov/index.html`\n\nIn order to get a pylint report, run\n\n```\nuv run pylint fuelpricesgr\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmavroprovato%2Ffuelpricesgr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmavroprovato%2Ffuelpricesgr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmavroprovato%2Ffuelpricesgr/lists"}