👉👁️👄👁️👈 - library (as in real books) management system for PVV
Go to file
Bjornar Orjansen Kaarevik be535daa47 added usage of isbnlib to data fetchers 2023-04-02 03:02:37 +02:00
data_fetcher added usage of isbnlib to data fetchers 2023-04-02 03:02:37 +02:00
frontend Setup frontend frame 2022-10-15 19:49:37 +02:00
worblehat Various minor changes 2022-08-27 19:12:15 +02:00
.gitignore Initial commit 2023-04-02 00:59:07 +02:00
LICENSE Initial commit 2023-04-02 00:59:07 +02:00
README.md fixed todo in readme 2023-04-02 01:16:52 +02:00
config.py Initialize flask configs 2022-08-16 15:07:31 +02:00
requirements.txt Add readme and requirements 2022-08-16 22:13:48 +02:00
run.sh Initialize flask configs 2022-08-16 15:07:31 +02:00

README.md

Worblehat

More information on https://www.pvv.ntnu.no/pvv/Bokhyllen/Worblehat/

What?

Worblehat is a simple library management system written specifically for Programvareverkstedet.

Why?

Programvareverkstedet is a small community with many books and games. A simple web platform is needed to manage the library. We need to know who owns each item, if we can loan it out and where it is.

Programvareverkstedet har en rekke bøker, og en konstant tilstrøm av nye. Teoretisk sett skal disse ryddes og kategoriseres jevntlig, men da dette ikke gjøres ofte nok kan det være et varig strev å finne ut hvor bøker står til enhver tid. Styret har derfor tatt initiativ til å opprette et biblioteksystem for å systematisere bøkene. 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.

How?

The entire application is written in flask.

Flask functions as a web server, and uses an ORM(SQLAlchemy) to store the data in an SQLite database.

The resulting web page is rendered on the server by jinja templates in flask.

Technical Details

How to install

  • Make a .env file with a secret key.
    • $ echo "SECRET_KEY=<secret>" > .env
  • Make a virtualenv
    • $ python3 -m venv venv
  • Activate the virtualenv
    • $ source venv/bin/activate
  • Install the requirements
    • $ pip install -r requirements.txt

How to configure

  • Make changes in the function "reset_db()" in worblehat/__init__.py if needed
  • run $ flask --app worblehat --debug resetdb

Requirements

System / Package Manager

  • Python >= 3.6
  • Pip

Python packages

TODO

Funksjonalitet

  • Høy prioritet:
    • Bokdatabase med alle PVVs bøker må lages
    • Bokdatabasebyggingsverktøy for å bygge bokdatabasen (sjekker online ISBN-database for informasjon om boken)
    • Utlånsmuligheter på PVVs lokaler for eksempel gjennom Dibbler sin strekkodescanner
  • Lav prioritet:
    • Utlånsmuligheter gjennom nettportal på PVVs nettsider
    • Søkemuligheter gjennom en nettportal på PVVs nettsider
  • Til diskusjon:
    • Skal Worblehat kjøre i en annen tty-instans på Dibbler sin Raspberry Pi ELLER skal man skifte mellom Worblehat-mode og Dibbler-mode i samme tty?

Ellers

  • [] Legge til håndtering av flere ISBN-databaser
    • [] isbntools ser ut til å finne en del ting som openlibrary ikke finner alene
  • [] Legge til batch-prosessering av ISBN-er
    • [] For å kunne scanne en hel hylle og så dumpe hele listen av ISBN-er til databasene vi henter fra
  • [] Lage en database vi kan lagre våre bøker i
  • [] Finne en måte å håndtere kollisjon dersom vi har flere eksemplarer av samme bok
    • [] Klistremerke med eksemplar-nummer ved siden av ISBN, kanskje
  • [] Se om https://pypi.org/project/isbntools/ er et nyttig verktøy for arbeidet vårt
    • [] Ser nyttig ut

Tilfeldig

En relativt stor online ISBN-database er lokalisert:

  • https://openlibrary.org//
    • Eksporterer json-objekter med alle mulig slags rare felter
  • google books databasen er også mulig å benytte.
  • Kanskje ISBNdb.com er mulig å benytte også.

Noen viktige felter til databasen er som følger:

  • ISBN (faktisk eller pvv generert)
  • Forfatter
  • Tittel
  • Utgivelsesår
  • Antall sider
  • Sjanger
  • Språk
  • Om boken er utlånbar
  • Bruker som har lånt boken
  • Dato på når boken ble lånt ut

Prosedyre for bokdatabasebygging:

  • Systematisk arbeid, hylle for hylle
  • Tre bunker: "ikke scannet", "scannet" og "manuell innlegging"
  • Scanning sjekker live om info kan hentes fra online database(r)
  • Dersom finnes: legg i "scannet", ellers legg i "manuell innlegging"
  • Legg inn manuelle bøker
  • Sett tilbake i hyllen og fortsett til neste

Ny (alternativ) prosedyre:

  1. Ta ut alle bøker fra en hylle
  2. Batch-scan isbner; skill så bøker med og uten isbn (scannet- og manuell-bunke)
  3. Få isbntools til å hente metadata for listen med isbner; dersom den ikke finner noe, legg boken i manuell-bunken
  4. Sett alle scannede bøker tilbake og gå gjennom manuell-bunken
  5. Sett alt tilbake og ferdiggjør csv-en eller hva enn for den spesifike hyllen

Programmvare utviklet:

  • Enkelt python og JS script for uthenting av data fra database(r) gitt isbn.