All Projects β†’ yezz123 β†’ ChefAPI

yezz123 / ChefAPI

Licence: MIT license
API using FastAPI and PostgreSQL for sharing or keeping track of awesome food recipes Based on Oauth2 and JWT πŸ’Ž

Programming Languages

python
139335 projects - #7 most used programming language
Dockerfile
14818 projects

Projects that are alternatives of or similar to ChefAPI

fastrates
πŸ’΅ Free & open source API service for current and historical foreign exchange rates.
Stars: ✭ 26 (+62.5%)
Mutual labels:  sqlalchemy, uvicorn, fastapi
FastAPI-Full-Stack-Samples
The API Application Development using Python FastAPI, including interactive API documentation
Stars: ✭ 61 (+281.25%)
Mutual labels:  sqlalchemy, uvicorn, fastapi
fastapi-starter
A FastAPI based low code starter: Async SQLAlchemy, Postgres, React-Admin, pytest and cypress
Stars: ✭ 97 (+506.25%)
Mutual labels:  postgres, sqlalchemy, fastapi
FRDP
Boilerplate code for quick docker implementation of REST API with JWT Authentication using FastAPI, PostgreSQL and PgAdmin ⭐
Stars: ✭ 55 (+243.75%)
Mutual labels:  sqlalchemy, jwt-authentication, fastapi
nebulo
Instant GraphQL API for PostgreSQL and SQLAlchemy
Stars: ✭ 74 (+362.5%)
Mutual labels:  postgres, sqlalchemy
mathesar
Web application providing an intuitive user experience to databases.
Stars: ✭ 95 (+493.75%)
Mutual labels:  postgres, sqlalchemy
favv
Fullstack Web Application Framework With FastAPI + Vite + VueJS. Streamlit for rapid development.
Stars: ✭ 17 (+6.25%)
Mutual labels:  sqlalchemy, fastapi
Asyncpgsa
A wrapper around asyncpg for use with sqlalchemy
Stars: ✭ 371 (+2218.75%)
Mutual labels:  postgres, sqlalchemy
fastapi-sqlalchemy-1.4-async
https://rogulski.it/blog/sqlalchemy-14-async-orm-with-fastapi/
Stars: ✭ 17 (+6.25%)
Mutual labels:  sqlalchemy, fastapi
fiber-boilerplate
This is the go boilerplate on the top of fiber web framework. With simple setup you can use many features out of the box
Stars: ✭ 184 (+1050%)
Mutual labels:  postgres, jwt-authentication
Fastapi React
πŸš€ Cookiecutter Template for FastAPI + React Projects. Using PostgreSQL, SQLAlchemy, and Docker
Stars: ✭ 501 (+3031.25%)
Mutual labels:  postgres, sqlalchemy
Flask Boilerplate
Simple flask boilerplate with Postgres, Docker, and Heroku/Zeit now
Stars: ✭ 251 (+1468.75%)
Mutual labels:  postgres, sqlalchemy
nim-gatabase
Connection-Pooling Compile-Time ORM for Nim
Stars: ✭ 103 (+543.75%)
Mutual labels:  postgres, sqlalchemy
fastapi-saas-base
Fast API SAAS Base App
Stars: ✭ 47 (+193.75%)
Mutual labels:  sqlalchemy, fastapi
Flask Restplus Boilerplate
A boilerplate for flask restful web service
Stars: ✭ 466 (+2812.5%)
Mutual labels:  sqlalchemy, jwt-authentication
Architect
A set of tools which enhances ORMs written in Python with more features
Stars: ✭ 320 (+1900%)
Mutual labels:  postgres, sqlalchemy
Databases
Async database support for Python. πŸ—„
Stars: ✭ 2,602 (+16162.5%)
Mutual labels:  postgres, sqlalchemy
fastapi-debug-toolbar
A debug toolbar for FastAPI.
Stars: ✭ 90 (+462.5%)
Mutual labels:  sqlalchemy, fastapi
fastapi-boilerplate
FastAPI boilerplate for real world production
Stars: ✭ 145 (+806.25%)
Mutual labels:  sqlalchemy, fastapi
Records
SQL for Humansβ„’
Stars: ✭ 6,761 (+42156.25%)
Mutual labels:  postgres, sqlalchemy

ChefAPI

Docker Docker Image CI

ChefAPI

API using FastAPI and PostgreSQL to create and share or keeping track of awesome food recipes. Our API have aslo a Crud System Using JWT and Oauth2 to Create a Complete API that Can Be Used with a High Quality Frontend Project. ⛏

Getting Started

  • To start using ChefAPI You need some experience in Cuisine maybe how to create a Moroccan CousCous or Tajine.

Prerequisites

  • Python 3.8.6 or higher
  • PostgreSQL
  • FastAPI
  • Docker

Project setup

# clone the repo
$ git clone https://github.com/GDGSNF/ChefAPI

# move to the project folder
$ cd ChefAPI

Creating virtual environment

  • Install pipenv a global python project pip install pipenv
  • Create a virtual environment for this project
# creating pipenv environment for python 3
$ pipenv --three

# activating the pipenv environment
$ pipenv shell

# if you have multiple python 3 versions installed then
$ pipenv install -d --python 3.8

# install all dependencies (include -d for installing dev dependencies)
$ pipenv install -d

Configured Enviromment

Database

  • Using SQLAlchemy to Connect to our PostgreSQL Database
  • Containerization The Database.
  • Drop your PostgreSQL Configuration at the .env.sample and Don't Forget to change the Name to .env
# example of Configuration for the .env file

POSTGRES_SERVER = localhost
POSTGRES_USER = root
POSTGRES_PASSWORD = password
POSTGRES_DB = ChefAPI

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

# To run the Application under a reload enviromment use -- reload
$ uvicorn main:app --reload

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.
$ docker build
  • list all the docker images and you can also see the image chefapi:latest in the list.
$ docker images
  • run the application at port 5000. The various options used are:
  • -p: publish the container's port to the host port.
  • -d: run the container in the background.
  • -i: run the container in interactive mode.
  • -t: to allocate pseudo-TTY.
  • --name: name of the container
$ docker container run -p 5000:5000 -dit --name ChefAPI chefapi:latest
  • Check the status of the docker container
$ docker container ps

Preconfigured Packages

Includes preconfigured packages to kick start ChefAPI 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 ChefAPI 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.

License

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].