Article Summarizer is an asynchronous RESTful API built with Python and FastAPI. It utilizes Newspaper3k to provide real-time text summarization from a given URL.
First, install the system dependencies:
Second, download the source code
git clone https://github.com/sbathgate/fastapi-tdd-docker.git
cd fastapi-tdd-docker/
Third, build the project image.
make build
- Python 3.8
- FastAPI
- PostgreSQL
- Heroku
- Gunicorn
- Tortoise-ORM
- Newspaper3k
- Pytest
- Black
- Flake8
- iSort
├── .github
│ └── workflows
│ └── main.yml
├── .gitignore
├── README.md
├── docker-compose.yml
├── makefile
├── project
│ ├── .coverage
│ ├── .coveragerc
│ ├── .dockerignore
│ ├── Dockerfile
│ ├── Dockerfile.prod
│ ├── app
│ │ ├── __init__.py
│ │ ├── api
│ │ │ ├── __init__.py
│ │ │ ├── crud.py
│ │ │ ├── ping.py
│ │ │ └── summaries.py
│ │ ├── config.py
│ │ ├── db.py
│ │ ├── main.py
│ │ ├── models
│ │ │ ├── __init__.py
│ │ │ ├── pydantic.py
│ │ │ └── tortoise.py
│ │ └── summarizer.py
│ ├── db
│ │ ├── Dockerfile
│ │ └── create.sql
│ ├── entrypoint.sh
│ ├── htmlcov
│ ├── requirements-dev.txt
│ ├── requirements.txt
│ ├── setup.cfg
│ └── tests
│ ├── __init__.py
│ ├── conftest.py
│ ├── test_ping.py
│ ├── test_summaries.py
│ └── test_summaries_unit.py
└── release.sh
- 0.1.0
- Initial release
This project wouldn't have been possible without the excellent Test-Driven Development with FastAPI and Docker course developed by Michael Herman on testdriven.io. You can also find a free tutorial on their blog Developing and Testing an Asynchronous API with FastAPI and Pytest.
- Fork it (https://github.com/sbathgate/article-summarizer/fork)
- Create your feature branch (
git checkout -b feature/fooBar
) - Commit your changes (
git commit -am 'Add some fooBar'
) - Push to the branch (
git push origin feature/fooBar
) - Create a new Pull Request