Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sbathgate/article-summarizer
Asynchronous RESTful API built with Python and FastAPI. Utilizes Newspaper3k to provide real-time text summarization from a given URL.
https://github.com/sbathgate/article-summarizer
black docker fastapi flake8 github-actions heroku isort makefile pytest python restful-api test-driven-development
Last synced: about 1 month ago
JSON representation
Asynchronous RESTful API built with Python and FastAPI. Utilizes Newspaper3k to provide real-time text summarization from a given URL.
- Host: GitHub
- URL: https://github.com/sbathgate/article-summarizer
- Owner: sbathgate
- Created: 2020-06-19T16:14:09.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2021-06-10T15:48:36.000Z (over 3 years ago)
- Last Synced: 2023-03-09T02:53:00.044Z (over 1 year ago)
- Topics: black, docker, fastapi, flake8, github-actions, heroku, isort, makefile, pytest, python, restful-api, test-driven-development
- Language: Python
- Homepage: http://summarizer.shaunb.ca/docs
- Size: 49.8 KB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 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](https://github.com/sbathgate/fastapi-tdd-docker/workflows/CI%20CD/badge.svg?branch=master)
## Development setup
First, install the system dependencies:
* [docker](https://docs.docker.com/)
* [docker-compose](https://docs.docker.com/compose/)
* [git](https://git-scm.com/)
* [make](https://www.gnu.org/software/make/)Second, download the source code
```sh
git clone https://github.com/sbathgate/fastapi-tdd-docker.git
cd fastapi-tdd-docker/
```Third, build the project image.
```sh
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](https://testdriven.io/courses/tdd-fastapi/) developed by [Michael Herman](https://mherman.org/) on [testdriven.io](https://testdriven.io). You can also find a free tutorial on their blog [Developing and Testing an Asynchronous API with FastAPI and Pytest](https://testdriven.io/blog/fastapi-crud/).## Contributing
1. Fork it ()
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