{"id":13424970,"url":"https://github.com/yezz123/DogeAPI","last_synced_at":"2025-03-15T18:36:12.430Z","repository":{"id":44742463,"uuid":"366633671","full_name":"yezz123/DogeAPI","owner":"yezz123","description":"API with high performance to create a simple blog and Auth using OAuth2 ⛏","archived":false,"fork":false,"pushed_at":"2024-05-14T17:15:52.000Z","size":205,"stargazers_count":151,"open_issues_count":2,"forks_count":38,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-14T22:51:14.629Z","etag":null,"topics":["api","asyncio","backend","fastapi","python","python3","rest-api","sqlalchemy","sqlite","swagger-ui","uvicorn"],"latest_commit_sha":null,"homepage":"https://blog.yezz.me/blog/Build-and-Secure-an-API-in-Python-with-FastAPI","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/yezz123.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"docs/CODE_OF_CONDUCT.md","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},"funding":{"custom":["https://paypal.me/yassertahiri"]}},"created_at":"2021-05-12T07:43:32.000Z","updated_at":"2025-03-12T21:39:15.000Z","dependencies_parsed_at":"2024-01-03T02:30:08.065Z","dependency_job_id":"a8328fb7-93f2-4591-9319-c4ef245e707f","html_url":"https://github.com/yezz123/DogeAPI","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/yezz123%2FDogeAPI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yezz123%2FDogeAPI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yezz123%2FDogeAPI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yezz123%2FDogeAPI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yezz123","download_url":"https://codeload.github.com/yezz123/DogeAPI/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243775959,"owners_count":20346298,"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","asyncio","backend","fastapi","python","python3","rest-api","sqlalchemy","sqlite","swagger-ui","uvicorn"],"created_at":"2024-07-31T00:01:01.383Z","updated_at":"2025-03-15T18:36:07.420Z","avatar_url":"https://github.com/yezz123.png","language":"Python","readme":"![DOGEAPI](docs/Images/header.svg)\n\n\u003cp align=\"center\"\u003e\n   \u003cimg src=\"https://img.shields.io/badge/Dev-Yezz123-green?style\"/\u003e\n   \u003cimg src=\"https://img.shields.io/badge/language-python-blue?style\"/\u003e\n   \u003cimg src=\"https://img.shields.io/github/stars/yezz123/DogeAPI\"/\u003e\n   \u003cimg src=\"https://img.shields.io/github/forks/yezz123/DogeAPI\"/\u003e\n   \u003cimg src=\"https://visitor-badge.laobi.icu/badge?page_id=yezz123.Pretty-Readme\"\u003e\n   \u003cimg src=\"https://img.shields.io/static/v1?label=%F0%9F%8C%9F\u0026message=If%20Useful\u0026style=style=flat\u0026color=BC4E99\" alt=\"Star Badge\"/\u003e\n   \u003ca href=\"https://github.com/yezz123/DogeAPI/actions/workflows/docker-publish.yml\"\u003e\u003cimg src=\"https://github.com/yezz123/DogeAPI/actions/workflows/docker-publish.yml/badge.svg?branch=main\"/\u003e\u003c/a\u003e\n\n\u003c/p\u003e\n\n# DogeAPI\n\nAPI with high performance built with FastAPI \u0026 SQLAlchemy, help to improve connection with your Backend Side to create a simple blog and Cruds with OAuth2PasswordBearer ⛏\n\n## Getting Started\n\n### Prerequisites\n\n- Python 3.8.6 or higher\n- FastAPI\n- Docker\n\n### Project Setup\n\n```sh\n# clone the repo\n$ git clone https://github.com/yezz123/DogeAPI\n\n# move to the project folder\n$ cd DogeAPI\n```\n\n### Creating Virtual Environment\n\n- Create a virtual environment using virtualenv.\n\n```shell\n# creating virtual environment\n$ virtualenv venv\n\n# activate virtual environment\n$ source venv/bin/activate\n\n# install all dependencies\n$ pip install -r requirements.txt\n```\n\n### Running the Application\n\n- To run the [Main](main.py) we need to use [uvicorn](https://www.uvicorn.org/) a lightning-fast ASGI server implementation, using uvloop and httptools.\n\n```sh\n# Running the application using uvicorn\n$ uvicorn main:app --reload\n```\n\n### Environment Variables\n\n- `SECRET_KEY`: A secret key for signing Json Web Token.\n- `DATABASE_URL`: The database url to connect to the database.\n- `ACCESS_TOKEN_EXPIRE_MINUTES`: The access token expire minutes.\n\n\u003e change all the environment variables in the `.env.sample` and don't forget to rename it to `.env`.\n\n### Configured Environment\n\n#### Models\n\n- Here for the [Models.py](models/models.py), i create 2 tables based on the requirements for this project `blogs` and `users`\n\n## Running the Docker Container\n\n- We have the Dockerfile created in above section. Now, we will use the Dockerfile to create the image of the FastAPI app and then start the FastAPI app container.\n- Using a preconfigured `Makefile` tor run the Docker Compose:\n\n```sh\n# Pull the latest image\n$ make pull\n\n# Build the image\n$ make build\n\n# Run the container\n$ make start\n\n```\n\n## Preconfigured Packages\n\nIncludes preconfigured packages to kick start DogeAPI by just setting appropriate configuration.\n\n| Package                                                      | Usage                                                            |\n| ------------------------------------------------------------ | ---------------------------------------------------------------- |\n| [uvicorn](https://www.uvicorn.org/)        | a lightning-fast ASGI server implementation, using uvloop and httptools.           |\n| [Python-Jose](https://github.com/mpdavis/python-jose) | a JavaScript Object Signing and Encryption implementation in Python.    |\n| [SQLAlchemy](https://www.sqlalchemy.org/)  | is the Python SQL toolkit and Object Relational Mapper that gives application developers the full power and flexibility of SQL. |\n| [starlette](https://www.starlette.io/)   | a lightweight ASGI framework/toolkit, which is ideal for building high performance asyncio services.    |\n| [passlib](https://passlib.readthedocs.io/en/stable/)  | a password hashing library for Python 2 \u0026 3, which provides cross-platform implementations of over 30 password hashing algorithms         |\n| [bcrypt](https://github.com/pyca/bcrypt/)               | Good password hashing for your software and your servers.    |\n| [python-multipart](https://github.com/andrew-d/python-multipart) | streaming multipart parser for Python.   |\n\n`yapf` packages for `linting and formatting`\n\n## Contributing\n\n- Join the DOGEAPI Creator and Contribute to the Project if you have any enhancement or add-ons to create a good and Secure Project, Help any User to Use it in a good and simple way.\n- Check all information here at [docs's Folder](docs) to understand to how to contribute or to Read the Code of Conduct.\n\n## License\n\nThis project is licensed under the terms of the MIT license.\n","funding_links":["https://paypal.me/yassertahiri"],"categories":["Projects","Uncategorized"],"sub_categories":["Open Source Projects","Uncategorized"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyezz123%2FDogeAPI","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyezz123%2FDogeAPI","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyezz123%2FDogeAPI/lists"}