Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/boris/reimagined-invention
New version of my wife's books inventory
https://github.com/boris/reimagined-invention
hacktoberfest
Last synced: 11 days ago
JSON representation
New version of my wife's books inventory
- Host: GitHub
- URL: https://github.com/boris/reimagined-invention
- Owner: boris
- Created: 2022-08-06T00:40:11.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-07-17T01:42:15.000Z (4 months ago)
- Last Synced: 2024-10-10T04:22:25.701Z (28 days ago)
- Topics: hacktoberfest
- Language: Python
- Homepage:
- Size: 370 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
# Reimagined Invention
New generation of [the book inventoy](https://books.lenore.me).## Requirements:
- Python 3.9.10 in a venv `reimagined-invention`## Design patterns
This project will be developed usign a [functional
structure](https://exploreflask.com/en/latest/blueprints.html#functional-structure)
to organize the files of the project according to what they do. This means that
templates are grouped together in one directory, static in another and views in
a third (copy/paste from Flask documentation).### DB relationships:
**Author -> Book** should be a many-to-many relationship as multiple authors can
share the ownership of a book.For example, authors A and B wrote the book X. When listing all the books
written by author A, book X must appear in the results. Likewise when
listing the books written by author B.If we want to use a one-to-one relationship, the book X should only be
returned as part of the results if we search by "the books written by author
A **and** author B" working together.See [PR/3](https://github.com/boris/reimagined-invention/pull/3) for
documentation about v0.1.0 release.## Usage
Create an empty `.env_vars` file. If you want to take advantage of the Makefile,
update it with the following content:
```
CF_TUNNEL=some_token
MYSQL_ROOT_PASSWORD=some_password
```
Create a `config.yaml` out of `config.yaml.example` and update the values. Then:
```
flask --app app --debug db migrate
flask --app app --debug db upgrade
flask --app app --debug run
```## Building images
It uses a `Makefile`, and it's as simply as:
```
make build
make push
```This will build two images:
- One named `latest`
- One named after the latest git tagImages will be pused to AWS ECR private repository, until this project gets
open-sourced. Which will happen once it's live.## Sample DB
Sample DB has been added. On mysql create a new DB and restore using the dump.## Suggestions
- Use [Cloudflare Tunnels](https://www.cloudflare.com/products/tunnel/)