https://github.com/gixproject/esbook
Flask boilerplate REST API application based on Docker that provides search capabilities using ElasticSearch
https://github.com/gixproject/esbook
black docker elasticsearch flask gunicorn poetry postgresql rest-api sqlalchemy
Last synced: 3 months ago
JSON representation
Flask boilerplate REST API application based on Docker that provides search capabilities using ElasticSearch
- Host: GitHub
- URL: https://github.com/gixproject/esbook
- Owner: gixproject
- License: apache-2.0
- Created: 2020-11-18T11:41:55.000Z (almost 5 years ago)
- Default Branch: develop
- Last Pushed: 2022-01-30T09:35:28.000Z (over 3 years ago)
- Last Synced: 2025-06-26T10:04:01.042Z (4 months ago)
- Topics: black, docker, elasticsearch, flask, gunicorn, poetry, postgresql, rest-api, sqlalchemy
- Language: Python
- Homepage:
- Size: 131 KB
- Stars: 3
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ESbook
[](https://travis-ci.org/gixproject/esbook)
[](http://www.apache.org/licenses/LICENSE-2.0)
[](https://coveralls.io/github/gixproject/esbook)
[](https://github.com/ambv/black)## Description
The boilerplate Flask application that provides search within books.The API represents results in a suitable JSON format that can be helpful to other developers and companies.
It allows you to retrieve data for a period or just by one author.
Periodical updates help to keep the data fresh.### Libraries and tools
* Docker + compose
* Poetry package manager
* Flask Framework
* Flask-restplus
* PostgreSQL
* SQLAlchemy
* ElasticSearch
* gunicorn
* unittest + pytest
* invoke## Setup
Make sure **Docker** is installed on your system1. Copy `.env.example` file content to `.env`
2. `make build && make up`
3. Open `localhost:5000`Pay attention that the config file already has default values
## Useful actions
### Commands
**To run commands use** `make exec` to execute web container
To see all commands type `python manage.py`Configure the project with test data:
`manage.py apply_test_data`Migrate existing books to ElasticSearch:
`python manage.py migrate_books_to_es`To see all URL's:
`python manage.py show_urls`To recreate database schema use:
`python manage.py reset_db`### Make commands support
For details type `make help`### Testing
Run tests `make test`
Run lint `make lint`