Update README

This commit is contained in:
Oystein Kristoffer Tveit 2023-05-12 02:58:45 +02:00
parent b83175e39a
commit e154989a16
Signed by: oysteikt
GPG Key ID: 9F2F7D8250F35146
1 changed files with 48 additions and 35 deletions

View File

@ -20,12 +20,6 @@ Styret har derfor tatt initiativ til å opprette et biblioteksystem for å syste
Prosjektet har fått navn Worblehat etter en bibliotekar i Terry Pratchetts discworld serie. Prosjektet har fått navn Worblehat etter en bibliotekar i Terry Pratchetts discworld serie.
Worblehatt har vært påbegynnt flere ganger opp gjennom historien uten å komme i noen form for funksjonell tilstand enda. Worblehatt har vært påbegynnt flere ganger opp gjennom historien uten å komme i noen form for funksjonell tilstand enda.
## How?
The application is split into frontend and backend. The frontend is written with react-scripts, and communicates with the backed through a REST api.
The backend is written in Flask, and uses an ORM(SQLAlchemy) to store the data in any kind of SQL database.
# Technical details # Technical details
## Setup ## Setup
@ -35,39 +29,58 @@ This project uses [poetry][poetry] as its buildtool as of May 2023.
```console ```console
$ poetry install $ poetry install
$ poetry run alembic migrate $ poetry run alembic migrate
$ poetry run cli $ poetry run worblehat --help
$ poetry run dev
``` ```
## How to configure ## How to configure
See `worblehat/config.py` for configurable settings. See `config.template` for configurable settings.
Unless provided through the `--config` flag, program will automatically look for a config file in these locations:
- `./config.toml`
- `~/.config/worblehat/config.toml`
- `/var/lib/worblehat/config.toml`
Run `poetry run worblehat --help` for more info
## TODO List ## TODO List
- [ ] High priority: ### Setting up a database with all of PVVs books
- [X] Data ingestion logic, that will pull data from online databases based on ISBN.
- [ ] Cli version of the program (this is currently being worked on). - [ ] Create postgres database
- [ ] Web version of the program
- [ ] Setting up a database with all of PVVs books
- [ ] Creating database with user and pw
- [ ] Model all bookshelfs - [ ] Model all bookshelfs
- [ ] Scan in all books - [ ] Scan in all books
- [ ] Inner workings
### Cli version of the program (this is currently being worked on)
- [X] Ability to pull data from online sources with ISBN
- [X] Ability to create and update bookcases - [X] Ability to create and update bookcases
- [X] Ability to create and update bookcase shelfs - [X] Ability to create and update bookcase shelfs
- [X] Ability to create and update bookcase items - [X] Ability to create and update bookcase items
- [X] Ability to request book loans for PVV members - [X] Ability to borrow an item
- [X] Ability to queue book loans for PVV members - [X] Ability to enter the queue for borrowing an item
- [ ] Ability to extend a borrowing, only if no one is behind you in the queue
- [ ] Ability to borrow multiple items at a time
- [ ] Ability to deliver multiple items at a time
- [ ] Ability to list borrowed items which are overdue
- [ ] Ability to search for items
- [ ] Ability to print PVV-specific labels for items missing a label, or which for any other reason needs a custom one
- [ ] Ascii art of monkey with fingers in eyes
### Deadline daemon
- [X] Ability to be notified when deadlines are due - [X] Ability to be notified when deadlines are due
- [ ] Ability to be notified when books are available - [ ] Ability to be notified when books are available
- [ ] Ability to search for books - [ ] Ability to have expiring queue positions automatically expire
- [ ] Ability to print PVV-specific labels for items without a label, or for any other reason needs a new one
- [ ] Ascii art of monkey ### Web version of the program
- [ ] Low priority:
- [ ] Ability for PVV members to request book loans through the PVV website
- [ ] Ability for PVV members to search for books through the PVV website - [ ] Ability for PVV members to search for books through the PVV website
- [ ] Discussion
- [ ] Should this project run in a separate tty-instance on Dibblers interface, or should they share the tty with some kind of switching ability? ## Points of discussion
- Should this project run in a separate tty-instance on Dibblers interface, or should they share the tty with some kind of switching ability?
After some discussion with other PVV members, we came up with an idea where we run the programs in separate ttys, and use a set of large mechanical switches connected to a QMK-flashed microcontroller to switch between them. After some discussion with other PVV members, we came up with an idea where we run the programs in separate ttys, and use a set of large mechanical switches connected to a QMK-flashed microcontroller to switch between them.
- [ ] Workaround for not being able to represent items with same ISBN and different owner: if you are absolutely adamant about placing your item at PVV while still owning it, even though PVV already owns a copy of this item, please print out a new label with a "PVV-ISBN" for it
- Workaround for not being able to represent items with same ISBN and different owner: if you are absolutely adamant about placing your item at PVV while still owning it, even though PVV already owns a copy of this item, please print out a new label with a "PVV-ISBN" for it