{"id":28212664,"url":"https://github.com/iamsuvhro/link-shortner","last_synced_at":"2026-03-01T04:36:18.788Z","repository":{"id":292397094,"uuid":"980778259","full_name":"iamsuvhro/link-shortner","owner":"iamsuvhro","description":"A lightweight URL shortening service built to create short, unique links from long URLs with click tracking. This backend project showcases RESTful API design, threading for concurrent request handling, and database integration, demonstrating scalable and thread-safe web development.","archived":false,"fork":false,"pushed_at":"2025-05-10T16:48:11.000Z","size":13,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-20T21:28:29.478Z","etag":null,"topics":["fastapi","mongdb","python3"],"latest_commit_sha":null,"homepage":"https://ishort.onrender.com/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iamsuvhro.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2025-05-09T17:42:49.000Z","updated_at":"2025-05-10T16:49:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"a09d43a2-225a-46fa-aa78-f48159d79c3d","html_url":"https://github.com/iamsuvhro/link-shortner","commit_stats":null,"previous_names":["iamsuvhro/link-shortner"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/iamsuvhro/link-shortner","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamsuvhro%2Flink-shortner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamsuvhro%2Flink-shortner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamsuvhro%2Flink-shortner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamsuvhro%2Flink-shortner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iamsuvhro","download_url":"https://codeload.github.com/iamsuvhro/link-shortner/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamsuvhro%2Flink-shortner/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29960253,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T01:47:18.291Z","status":"online","status_checked_at":"2026-03-01T02:00:07.437Z","response_time":124,"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":["fastapi","mongdb","python3"],"created_at":"2025-05-17T19:09:15.568Z","updated_at":"2026-03-01T04:36:18.757Z","avatar_url":"https://github.com/iamsuvhro.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ©️ ishort (Link Shortner)\n\nA lightweight URL shortening service built to create short, unique links from long URLs with click tracking. This backend project showcases RESTful API design, threading for concurrent request handling, and database integration, demonstrating scalable and thread-safe web development.\n\nLive Demo\n\n🚀 Try the live app at:   https://ishort.onrender.com.\n\n## Features\n- **URL Shortening**: Generate short links for long URLs.\n- **Click Tracking**: Monitor click counts for analytics.\n- **RESTful APIs**: Endpoints for creating and redirecting URLs.\n- **Thread-Safe**: Handles concurrent requests efficiently.\n\n## Tech Stack\n- **Language**: Python\n- **Framework**: FastAPI\n- **Database**: MongoDB\n- **Threading**: Python’s `threading` module\n\n## Setup Instructions\n1. **Clone Repository**:\n   ```bash\n   git clone https://github.com/iamsuvhro/link-shortner.git\n   cd link-shortner\n   ```\n2. **Install Dependencies**:\n   ```bash\n   pip install -r requirements.txt\n   ```\n3. **Run Application**:\n   ```bash\n   uvicorn main:app --reload\n   ```\n4. **Access API**: Visit `http://localhost:8000`.\n\n## Usage\n- **Shorten URL**: POST `/shorten` with `{\"url\": \"https://example.com\"}`.\n- **Redirect**: GET `/{short_code}` to visit the original URL.\n- **Analytics**: GET `/analytics/{short_code}` for click data.\n\n## Architecture\n- **API Layer**: FastAPI-based REST endpoints.\n- **Service Layer**: URL encoding and click tracking logic.\n- **Data Layer**: MongoDB for persistent storage.\n\n## Contributing\nFork, create a branch, commit changes, and submit a pull request. Follow the [Code of Conduct](CODE_OF_CONDUCT.md).\n\n## License\nMIT License. See [LICENSE](LICENSE).\n\n---\n\n**Built by Suvhro**  \n🔗 [GitHub](https://github.com/iamsuvhro) | 🔗 [LinkedIn](https://linkedin.com/in/iamsuvhro)\n\n---\n\n**Notes**:\n- The README is concise (230 words) and tailored to the provided GitHub repository ([https://github.com/iamsuvhro/link-shortner](https://github.com/iamsuvhro/link-shortner)), which uses FastAPI, MongoDB, and Python.\n- The repository lacks a detailed setup guide, so I provided standard FastAPI setup steps. Confirm if additional steps (e.g., database initialization) are needed.\n- If you want specific code snippets or adjustments (e.g., adding a screenshot or diagram), please share more details!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiamsuvhro%2Flink-shortner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiamsuvhro%2Flink-shortner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiamsuvhro%2Flink-shortner/lists"}