A simple UI for musical album collectible items data input. The user is prompted to input data about music albums collectibles (currently supports music albums and books) and they are stored and ready to be exported in JSON format. The program was made to make indexing and organising music collections easier. It was later expanded to index books too and plans for custom collectible formats is planned for the future.
When the program starts the user selects if he wants to begin an album or book list. The user is asked to input the following data in this order:
The album*/book* title.
Automatic first letter of word capitalization (if it doesn't contain symbols)
The artist(s) that published the album.
Automatic first letter of word capitalization (if it doesn't contain symbols)
The year when the album /book was published.
The albums general genre.
Automatic first letter of word capitalization (if it doesn't contain symbols)
The format on which the album is stored (eg. Vinyl, Tape, CD).
Automatic changes for albums: v, lp, vinyl -> Vinyl | t, tape, cassette -> Tape | c, cd -> CD Automatic changes for books: p, paper -> Paperback | h, hard -> Hardcover
Who currently has the album /book in posession.
A (most propably) unique GUID number is generated for every entry with an API request to uuidgenerator.net. This ensures that even if you have a duplicate copy of the same album the two entries are NOT identicall. Every entry carries its own unique id number.
Starting a title entry (after prompted with "Next: ") with a / will trigger a command:
Will return a list with the currently loaded albums with their index number.
Will prompt for an index number and will return the unique ID number for the given entry.
Will prompt for an index number and will unload the given album. If no index is given it will unload the last entry.
Will sort all the entries. Sorting always happens accending, alphabetically, artist first (ignoring the word "The "), title second, format last.
Will delete any duplicate entries with the same id number. Note that this doesn't mean that it will delete duplicates if you made an entry twice for the same album twice. Under normal operation this command should be useless.
Will prompt for a JSON file name. The file should have been generated by this software or follow the same JSON schema. Loading a different schema that contains a LIST of DICTIONARIES will not fail. This includes loading a book JSON in an album list and vice versa. If something like this happens the lists will be mixed and /list and other functions might not work properly as they do not expect different dictionary keys. It will then read the saved JSON file and concatinate with the already loaded album list.
Will prompt for a JSON file name. It will then sort the loaded data and export everything into a JSON file.
The first expansion planned is for custom entries to be supported. This will enable the user to add custom fields for his collectibles. In the future I plan on retrieving missing album/book/etc. data from open and available APIs. An app to browse and manipulate from a convinient GUI is also scheduled when I find the time.