{"id":22282356,"url":"https://github.com/Sauberr/bookings-project","last_synced_at":"2025-07-28T20:32:10.681Z","repository":{"id":192258043,"uuid":"686362106","full_name":"Sauberr/bookings-project","owner":"Sauberr","description":"Hotel booking website","archived":false,"fork":false,"pushed_at":"2025-02-19T19:10:32.000Z","size":156,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-07T00:07:58.386Z","etag":null,"topics":["celery","docker","fastapi","grafana","python","redis"],"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/Sauberr.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":"2023-09-02T14:35:21.000Z","updated_at":"2025-02-22T15:38:02.000Z","dependencies_parsed_at":"2023-09-03T19:46:32.317Z","dependency_job_id":"8614e12d-affe-44be-aa4d-6b5edd871244","html_url":"https://github.com/Sauberr/bookings-project","commit_stats":null,"previous_names":["sauberr/bookings_project_v1","sauberr/bookings-project"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Sauberr/bookings-project","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sauberr%2Fbookings-project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sauberr%2Fbookings-project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sauberr%2Fbookings-project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sauberr%2Fbookings-project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Sauberr","download_url":"https://codeload.github.com/Sauberr/bookings-project/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sauberr%2Fbookings-project/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267580605,"owners_count":24110871,"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","status":"online","status_checked_at":"2025-07-28T02:00:09.689Z","response_time":68,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["celery","docker","fastapi","grafana","python","redis"],"created_at":"2024-12-03T16:27:16.769Z","updated_at":"2025-07-28T20:32:10.659Z","avatar_url":"https://github.com/Sauberr.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hotel Booking\nThis hotel booking application demonstrates the power of FastAPI and SQLAlchemy for building RESTful APIs. It incorporates Celery for asynchronous tasks, Redis for caching, Prometheus and Grafana for data monitoring and visualization  and Docker for containerization, showcasing a modern approach to backend development.\n\n#### Stack:\n\n- [Python](https://www.python.org/downloads/)\n- [PostgreSQL](https://www.postgresql.org/)\n- [Redis](https://redis.io/)\n- [Celery](https://docs.celeryq.dev/en/stable/)\n- [Docker](https://www.docker.com/)\n- [Prometheus](https://github.com/trallnag/prometheus-fastapi-instrumentator)\n- [Grafana](https://grafana.com/)\n\n## Local Developing\n\nAll actions should be executed from the source directory of the project and only after installing all requirements.\n\n1. Firstly, create and activate a new virtual environment:\n   ```bash\n   python3.11 -m venv ../venv\n   source ../venv/bin/activate\n   ```\n   \n2. Install packages:\n   ```bash\n   pip install --upgrade pip\n   pip install -r requirements.txt\n   ```\n\n## Run application\nThe uvicorn web server is used to run FastAPI. The command to run looks like this:\n```\nuvicorn app.main:app --reload\n```\nIt must be run on the command line, always being in the root directory of the project.\n\n### Celery \u0026 Flower\nTo start Celery use the command\n```\ncelery --app=app.tasks.celery:celery worker -l INFO -P solo\n\nNote that `-P solo` is only used on Windows, as Celery has problems working on Windows.\nTo start Flower use the command\n```\ncelery --app=app.tasks.celery:celery flower\n\n\n### Dockerfile\nTo run a web server (FastAPI) inside a container, you need to uncomment the code inside the Dockerfile and have an already running PostgreSQL instance on your machine.\nCode to run Dockerfile:\n```\ndocker build .\n```\n\nThe command is also run from the root directory where the Dockerfile resides.\n\n### Docker compose\nTo start all services (DB, Redis, web server (FastAPI), Celery, Flower, Grafana, Prometheus), you need to use the docker-compose.yml file and the commands\n```\ndocker compose build\ndocker compose up\n```\nMoreover, the `build` command needs to be run only if you changed something inside the Dockerfile, that is, you changed the logic for compiling the image.\n\n## License\n\nThis project uses the [MIT] license(https://github.com/Sauberr/bookings-project/blob/master/LICENSE)\n\n## Contact\n\nTo contact the author of the project, write to email 𝚍𝚖𝚒𝚝𝚛𝚒𝚢𝚋𝚒𝚛𝚒𝚕𝚔𝚘@𝚐𝚖𝚊𝚒𝚕.𝚌𝚘𝚖.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSauberr%2Fbookings-project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSauberr%2Fbookings-project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSauberr%2Fbookings-project/lists"}