👉👁️👄👁️👈 - library (as in real books) management system for PVV
Go to file
Oystein Kristoffer Tveit 78fa3076b9
Set up alembic, and more
- Setup alembic and generate the initial migration
- Add poethepoet to dev dependencies in order to put hard-to-remember
  commands beneath the poetry namespace
- Add psycopg2-binary dependency, for use with postgresql
- Remove dotenv dependency, as it is no longer required
- Add `config.toml` to gitignore. This is because alembic has no
  argument parser that will let you specify the config file to use.
  Developers are encouraged to use `config.toml`, which will be
  automatically recognized, unless they want to implement the argument
  parser functionality for alembic.
2023-05-06 17:52:15 +02:00
data Misc changes: 2023-05-01 01:37:52 +02:00
frontend Update frontend dependencies 2023-05-06 17:34:21 +02:00
worblehat Set up alembic, and more 2023-05-06 17:52:15 +02:00
.gitignore Set up alembic, and more 2023-05-06 17:52:15 +02:00
LICENSE Initial commit 2023-04-02 00:59:07 +02:00
README.md Start converting the scanner tool into a cli tool 2023-05-06 02:37:28 +02:00
alembic.ini Set up alembic, and more 2023-05-06 17:52:15 +02:00
config-template.toml Add argument parser and toml-based config file 2023-05-06 17:22:38 +02:00
flake.lock Add flake.nix to project 2023-05-04 17:24:17 +02:00
flake.nix Start converting the scanner tool into a cli tool 2023-05-06 02:37:28 +02:00
poetry.lock Set up alembic, and more 2023-05-06 17:52:15 +02:00
pyproject.toml Set up alembic, and more 2023-05-06 17:52:15 +02:00
worblehat.png 👉👁️👄👁️👈 2023-05-04 17:24:17 +02:00

README.md

worblehat

👉👁️👄👁️👈

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 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

Setup

This project uses [poetry][poetry] as its buildtool as of May 2023.

$ poetry install
$ poetry run alembic migrate
$ poetry run cli
$ poetry run dev

How to configure

See worblehat/config.py for configurable settings.

TODO List

  • High priority:
    • Data ingestion logic, that will pull data from online databases based on ISBN.
    • Cli version of the program (this is currently being worked on).
    • Web version of the program
    • Setting up a database with all of PVVs books
      • Creating database with user and pw
      • Model all bookshelfs
      • Scan in all books
    • Inner workings
      • Ability to create and update bookcases
      • Ability to create and update bookcase shelfs
      • [~] Ability to create and update bookcase items
      • Ability to search for books
      • Ability to request book loans for PVV members
      • Ability to queue book loans for PVV members
      • Ability to be notified when books are available
      • Ability to be notified when deadlines are due
      • Ascii art of monkey
  • 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
  • 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.