{"id":18869201,"url":"https://github.com/kramber1024/url-shortener-api","last_synced_at":"2025-10-27T22:11:40.005Z","repository":{"id":248885536,"uuid":"830067739","full_name":"kramber1024/url-shortener-api","owner":"kramber1024","description":"🔗 API for URL Shortener","archived":false,"fork":false,"pushed_at":"2025-04-07T12:28:23.000Z","size":569,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-14T15:13:41.126Z","etag":null,"topics":["api","bitly","crud","database","docker","fastapi","python","rest","restful-api","short-url","sqlalchemy","swagger","url-shortener"],"latest_commit_sha":null,"homepage":"https://github.com/kramber1024/url-shortener","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/kramber1024.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":"2024-07-17T14:21:30.000Z","updated_at":"2025-04-08T17:17:43.000Z","dependencies_parsed_at":"2025-02-01T13:24:42.050Z","dependency_job_id":"203a6763-d9f7-4dc1-ac77-c3e6877c8510","html_url":"https://github.com/kramber1024/url-shortener-api","commit_stats":null,"previous_names":["kramber1024/url-shortener-api"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kramber1024%2Furl-shortener-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kramber1024%2Furl-shortener-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kramber1024%2Furl-shortener-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kramber1024%2Furl-shortener-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kramber1024","download_url":"https://codeload.github.com/kramber1024/url-shortener-api/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248904637,"owners_count":21180835,"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":["api","bitly","crud","database","docker","fastapi","python","rest","restful-api","short-url","sqlalchemy","swagger","url-shortener"],"created_at":"2024-11-08T05:16:09.008Z","updated_at":"2025-10-27T22:11:39.930Z","avatar_url":"https://github.com/kramber1024.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# URL Shortener API\n\n\u003ca href=\"https://github.com/kramber1024/url-shortener-api/actions/workflows/tests.yml\" target=\"_blank\"\u003e\u003cimg src=\"https://github.com/kramber1024/url-shortener-api/actions/workflows/tests.yml/badge.svg\" alt=\"Tests\"\u003e\u003c/a\u003e\n\u003ca href=\"https://app.codecov.io/github/kramber1024/url-shortener-api/tree/main\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/codecov/c/github/kramber1024/url-shortener-api\" alt=\"Coverage\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/astral-sh/ruff\"\u003e\u003cimg src=\"https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json\" alt=\"Ruff\"\u003e\u003c/a\u003e\n\n## Stack \u0026 Features\n\n- 🌐 [**FastAPI**](https://fastapi.tiangolo.com/) for Python backend.\n    - 📋 [Pydantic](https://docs.pydantic.dev/), used for data validation and settings management.\n    - 💾 [PostgreSQL](https://www.postgresql.org/) as SQL Database.\n- 🐋 [**Docker**](https://www.docker.com/) for development, testing and production.\n- 🏭 CI/CD with [**GitHub Actions**](https://github.com/kramber1024/url-shortener-api/actions/).\n- 🔑 [**JWT**](https://jwt.io/) based authentication.\n- ✅ Tests with [**Pytest**](https://pytest.org/).\n- 🔒 Secure password hashing.\n- ✉️ Password recovery with email.\n\n\u003e [!WARNING]\n\u003e This repository is part of a larger project that consists of multiple repositories. Using this repository on its own is not recommended, as it may not function correctly without the other components of the project. For complete functionality and proper integration, please refer to the [kramber1024/url-shortener](https://github.com/kramber1024/url-shortener).\n\n## Local launch\n\n### Requirements\n\n- 🐍 [**Python 3.12**](https://www.python.org/)\n\n### Installation\n\nClone the repository:\n```bash\ngit clone https://github.com/kramber1024/url-shortener-api.git\n```\n\nNavigate to the project directory:\n```bash\ncd url-shortener-api\n```\n\nCreate a virtual environment:\n```bash\npython -m venv venv\n```\n\nActivate the virtual environment:\n- On Linux and macOS:\n\n    ```bash\n    source venv/bin/activate\n    ```\n- On Windows:\n\n    ```bat\n    .\\venv\\Scripts\\activate\n    ```\n\nInstall [**Poetry**](https://python-poetry.org/) package manager:\n```bash\npip install poetry\n```\n\nInstall dependencies required to run the project:\n```bash\npoetry install --only main --no-root\n```\n\nRun the project:\n```bash\npython -m app.main\n```\n\nYou can see the result by navigating to one of the following addresses:\n- **http://127.0.0.1:26801/api/docs** - Swagger UI\n- **http://127.0.0.1:26801/api/redoc** - ReDoc\n\n\u003e [!NOTE]\n\u003e Documentation for testing, running in Docker, and environment variables can be found in [**DEVELOPMENT.md**](./DEVELOPMENT.md).\n\n## License\n\nThis project is licensed under the terms of the [**MIT license**](./LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkramber1024%2Furl-shortener-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkramber1024%2Furl-shortener-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkramber1024%2Furl-shortener-api/lists"}