Add library app (fix #7 #10)

Ref: #7 #10

This only adds the basic logic of the app. More to come in other PRs :)
Use `.format()`?