{"repo":"IHosseini083/Shortify","free":true,"listed":false,"github":"https://github.com/IHosseini083/Shortify","clone":"git clone https://github.com/IHosseini083/Shortify.git","description":"Shortify is a URL shortener RESTful API built with Python and FastAPI ⚡","language":"Python","stars":138,"topics":["fastapi","mongodb","python","rest-api","url-shortener"],"license":"GPL-3.0","category":"api-integrations-sdks","readme_excerpt":"Shortify Table of Contents - Introduction - Features - Requirements - Setup - 1. Clone the repository - 2. Install dependencies - 3. Configure environment variables - FastAPI Application - Logging - MongoDB - Superuser - Authentication - Short URLs - 4. Run the application - Using Docker (Recommended) - Manually - Documentation and Usage - Project Structure, Modifications and Best Practices - Creating new API routes - FastAPI Best Practices - Stack - License Introduction Shortify is a fast, fully async and reliable URL shortener RESTful API built with Python and [FastAPI] framework. It uses the open source [MongoDB] database for storing shortened URLs data and implements user registration via OAuth2 JWT authentication. Features - Dockerized and ready to be deployed. - Fully async and non-blocking. - Uses [FastAPI] framework for API development: - Uses [MongoDB] as data store for users and shortened URLs. - Extensible architecture for adding new API endpoints and services. - Descriptive and well-documented code. - OAuth2 (with hashed passwords and JWT tokens) based user authentication. - Uses [Poetry] for dependency management. - Automated code formatting and linting with [pre-commit] and [black]. - CORS (Cross Origin Resource Sharing) support. - Pagination support for listing shortened URLs and users. - Structured logging with [structlog]. - Correlation ID middleware for logging and tracing requests across services. - Class-based API endpoints for better code organization and","default_branch":null,"files":null,"tree":[],"storefront":"/r/IHosseini083","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/IHosseini083/Shortify/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}