Skip to content

Asynchronous RESTful API built with Python and FastAPI. Utilizes Newspaper3k to provide real-time text summarization from a given URL.

Notifications You must be signed in to change notification settings

sbathgate/article-summarizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Article Summarizer

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.

CI/CD

Development setup

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

Technologies

  • Python 3.8
  • FastAPI
  • PostgreSQL
  • Heroku
  • Gunicorn
  • Tortoise-ORM
  • Newspaper3k
  • Pytest
  • Black
  • Flake8
  • iSort

File Structure

Within the download you'll find the following directories and files:

├── .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

Release History

  • 0.1.0
    • Initial release

Acknowledgements

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.

Contributing

  1. Fork it (https://github.com/sbathgate/article-summarizer/fork)
  2. Create your feature branch (git checkout -b feature/fooBar)
  3. Commit your changes (git commit -am 'Add some fooBar')
  4. Push to the branch (git push origin feature/fooBar)
  5. Create a new Pull Request