.. post:: 2020.02.03 :tags: project :category: web :author: vladan :location: Linköping ========== Biblioteka ========== Biblioteka (Library in the many languages of Yugoslavia) is a library management software written in multiple backend and frontend languages and technologies. The most basic features that are implemented are listed below. application features / structure ================================ - List of all books (paginated). - Provide filters by author, language, publisher ... - A search module that will filter by author, language, publisher. One query that will search through all possible parameters. - A classical user management module, with login, profile, list of landed books, wishlist, etc. Endpoints --------- .. table:: :align: left +---------------------------+--------+-------------------------------------------------+ | URL | METHOD | Functionality | +===========================+========+=================================================+ | / | GET | List all books w/ profile and other cool stuff. | +---------------------------+--------+-------------------------------------------------+ | /loan// | POST | Loan a book. | +---------------------------+--------+-------------------------------------------------+ | /reserve// | POST | Reserve a book for loaning. | +---------------------------+--------+-------------------------------------------------+ | /filter?author=&isbn=& | GET | Filter the book list. | +---------------------------+--------+-------------------------------------------------+ | /login | POST | Log the user in. | +---------------------------+--------+-------------------------------------------------+ | /logout | POST | Log the user out. | +---------------------------+--------+-------------------------------------------------+ | /profile | GET | Display the users profile. | +---------------------------+--------+-------------------------------------------------+ | /register | GET | Register a new user in the application. | +---------------------------+--------+-------------------------------------------------+ Forms ----- - Reserve book(s) and add the reservation to a queue. - A reservation is a structure containing: - User - Book - [implicit] DateTime (reservation made at) - Lend a book. - A book lending structure is / should be the same as the reservations structure. - Search field with a fixed location on the page. - Registration / login form. Data types ========== .. uml:: skinparam componentStyle uml2 class Book { 1. ISBN : String 2. author : Author 3. publisher : Publisher 4. year_published : Int 5. description : String 6. image_url : String 7. quantity : Integer 8. slug : String 9. title : String } class Author { name : String } class Language { iso_name : String name : String } class Publisher { name : String } Book - Publisher Book - Language Book - Author