• Stars
    star
    120
  • Rank 286,834 (Top 6 %)
  • Language
    Python
  • License
    MIT License
  • Created about 3 years ago
  • Updated 10 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

API with high performance to create a simple blog and Auth using OAuth2 ⛏

DOGEAPI

Star Badge

DogeAPI

API with high performance built with FastAPI & SQLAlchemy, help to improve connection with your Backend Side to create a simple blog and Cruds with OAuth2PasswordBearer ⛏

Getting Started

Prerequisites

  • Python 3.8.6 or higher
  • FastAPI
  • Docker

Project Setup

# clone the repo
$ git clone https://github.com/yezz123/DogeAPI

# move to the project folder
$ cd DogeAPI

Creating Virtual Environment

  • Create a virtual environment using virtualenv.
# creating virtual environment
$ virtualenv venv

# activate virtual environment
$ source venv/bin/activate

# install all dependencies
$ pip install -r requirements.txt

Running the Application

  • To run the Main we need to use uvicorn a lightning-fast ASGI server implementation, using uvloop and httptools.
# Running the application using uvicorn
$ uvicorn main:app --reload

Environment Variables

  • SECRET_KEY: A secret key for signing Json Web Token.
  • DATABASE_URL: The database url to connect to the database.
  • ACCESS_TOKEN_EXPIRE_MINUTES: The access token expire minutes.

change all the environment variables in the .env.sample and don't forget to rename it to .env.

Configured Environment

Models

  • Here for the Models.py, i create 2 tables based on the requirements for this project blogs and users

Running the Docker Container

  • 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.
  • Using a preconfigured Makefile tor run the Docker Compose:
# Pull the latest image
$ make pull

# Build the image
$ make build

# Run the container
$ make start

Preconfigured Packages

Includes preconfigured packages to kick start DogeAPI by just setting appropriate configuration.

Package Usage
uvicorn a lightning-fast ASGI server implementation, using uvloop and httptools.
Python-Jose a JavaScript Object Signing and Encryption implementation in Python.
SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that gives application developers the full power and flexibility of SQL.
starlette a lightweight ASGI framework/toolkit, which is ideal for building high performance asyncio services.
passlib a password hashing library for Python 2 & 3, which provides cross-platform implementations of over 30 password hashing algorithms
bcrypt Good password hashing for your software and your servers.
python-multipart streaming multipart parser for Python.

yapf packages for linting and formatting

Contributing

  • 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.
  • Check all information here at docs's Folder to understand to how to contribute or to Read the Code of Conduct.

License

This project is licensed under the terms of the MIT license.

More Repositories

1

authx

Ready-to-use and customizable Authentications and Oauth2 management for FastAPI ✨
Python
554
star
2

ormdantic

Asynchronous ORM that uses pydantic models to represent database tables ✨
Python
119
star
3

fastapi-lazy

Lazy package to start your project using FastAPI✨
Python
99
star
4

SoIG

OSINT Tool gets a range of information from an Instagram account πŸ› 
Python
89
star
5

fastapi-class

provides a class-based View decorator to help reduce the amount of boilerplate necessary when developing related routes. βœ¨πŸš€
Python
75
star
6

FRDP

Boilerplate code for quick docker implementation of REST API with JWT Authentication using FastAPI, PostgreSQL and PgAdmin ⭐
Python
60
star
7

pyngo

Pydantic model support for Django & Django-Rest-Framework ✨
Python
58
star
8

My-Business

Business management tool featuring accounts, invoices, partners, projects, and server πŸ¦„
Python
44
star
9

Athena

Test your Security Skills, and Clean Code Development as a Pythonist, Hacker & Warrior πŸ₯·πŸ»
Python
43
star
10

fastapi-tag

Documented & Enhance the Metadata of your API ✨
Python
37
star
11

JeffQL

fastAPI Simple authentication & Login API using GraphQL and JWT πŸš€
Python
28
star
12

yezz.me

My personal website πŸš€
JavaScript
25
star
13

asgi-aws

Build API with ASGI in AWS Lambda with API Gateway HTTP API or REST API, or with Function URL ✨
Python
24
star
14

yezz123.github.io

My personal website πŸš€
JavaScript
23
star
15

CoveAPI

OpenAPI-based test coverage analysis tool that helps teams improve integration test coverage in CI/CD pipelines
Rust
18
star
16

VSCode-Sidebar-Themes

VSCode sidebar themes Website where you can copy & share your Sidebar Themes.
TypeScript
18
star
17

Blog

A Next.js, Tailwind CSS blogging Template. Used to Create my Blog πŸš€
JavaScript
17
star
18

Parser

Pure Python standard library JSON πŸ¦„
Python
12
star
19

pagidantic

Pagination using Pydantic. Easy to use, lightweight, and easy to integrate with existing projects πŸ’‘
Python
10
star
20

yezz123

My official Github Configuration πŸš€
10
star
21

yasgi

yasgi is a tiny ASGI framework ✨
Python
7
star
22

stripe-template

Template for integrating stripe into your FastAPI application πŸ’Έ
Python
5
star
23

xpresso

Developer centric, performant and extensible Python ASGI framework
Python
4
star
24

pg-dummy

A simple Script Help to insert Some Dummy Data to Populate Database For Testing
Python
3
star
25

RustyServer

A simple and minimalistic HTTP server for Rust
Rust
3
star
26

pycontent-type

A Python library to access all Supported Content-Types/Media-Types
Python
2
star
27

pypi-python-template

Quickly creating a new Modern Python project and publishing it to PyPI ✨
Python
1
star
28

spotify-preview

a simple bootstrapped application to show my own playlists
TypeScript
1
star
29

pyregex

Python bindings for the Rust regex Crate ✨
1
star
30

AWSFlowUtils

Improve your data workflow with enhanced simplicity and robustness in handling common data tasks ✨
Python
1
star