Skip to content

Quotes RESTful API created with Flask-RESTful and Flask-Mongoengine. Documented with Open API specification. Deployed with Zappa.

License

Notifications You must be signed in to change notification settings

miguel-osuna/Quotes-API

Repository files navigation

Quotes-API

📖 Description

RESTful API that serves the most famous quotes from all time. Built with Flask-RESTful.

🎯 Features

  • RESTful API created with Flask-RESTful
  • MongoDB integration with Flask-Mongoengine
  • Open API specification documentation

🔆 Visuals

Environments

Environment Endpoint
LOCAL Swagger Docs
PROD Swagger Docs

💡 Getting Started

Follow the instructions below to work on the project on your local environment.

📋 Prerequisites

In case you don't use Docker, you'll need Git, Python 3.8, Pip and a Virtual Environment (in this case, Pipenv is used as a package manager and virtual environment).

💻 Installation

# Clone this repository
$ git clone https://github.com/miguel-osuna/Quotes-API.git

# Go into the repository from the terminal
$ cd Quotes-API

# Remove current origin repository
$ git remote remove origin

All dependencies are listed on the Pipfile.

🐋 Running project with Docker

This will run the project on your local environment.

Make sure to create a hidden folder like envs.example named .envs, with the same kind of environment variables.

docker-compose -f local.yml build
docker-compose -f local.yml up -d
docker-compose -f local.yml up -d --build

Commands

The project supports cli commands for formatting, linting, database initialization and more.

Action Command
Test pipenv run test
Format pipenv run format
Lint pipenv run lint

🚀 Deployment

This project includes configuration files for both Heroku and AWS using Zappa.

🔧 Built With

  • Flask - Python Web Framework
  • Zappa - Python Serverless Deployment Library
  • Heroku - Hosting Platform

Project Documentation

See the project documentation

🎭 Authors

📒 License

This project is licensed under the MIT License - see the LICENSE.md file for details.