inveniosoftware-attic / invenio-circulation-legacy

https://invenio-circulation.readthedocs.io
GNU General Public License v2.0
4 stars 8 forks source link

RFC: roadmap #5

Open mvesper opened 9 years ago

mvesper commented 9 years ago

Now that some time has passed since the beginning of this project I was asked to come up with a roadmap about the future development. Here is my current plan:

After a couple of iterations and restarts, the current circulation prototype is in a working state for the basic operations, so the following steps should be implementable quicker:

notification / mail system

Instead of using templates stored as text files, there is the idea of storing them in the database, in some kind of json format, so that they could be editable on the fly in the same way as the other entities. Mixer is intended to be used here.

logging of events

This basically boils down to deciding what information we store and how. Since we want to query for information and not just documents, it seems reasonable to store the event information in a relational database fashion, utilizing the power of SQL.

using a daemon

The current bibcirculation uses a daemon to update status of loans and to send overdue mails. At this point this is completely undecided for the next circulation.

user/item/library roles/rules

Certain users/libraries/items could have different rules regarding their loan period, so this needs to be addressed. On approach would be using something like Access Control Lists (ACL) composed of those three entities mapped to one duration. This might end up being a little overkill though. Therefore a combination with "priorities" is proposed. Every item/user/library holds a loan periods together with a priority, overwriting the less important values. The ACL would be used as some kind of fallback.

Search

Own, circulation specific implementation or will there be some invenio standard?

Entity editor

JSON based editor should be in work already.

Criticism is highly encouraged :)

jirikuncar commented 9 years ago

configurable notification / mail system

Circulation package should trigger well defined signals so other packages, such as Flask-Notifications we are developing right now, can handle this signal in it's own way.

jirikuncar commented 9 years ago

Search

Own, circulation specific implementation or will there be some invenio standard?

There was an idea to use records of different types to store libraries, items, or users. Hence we can then use standard search engine with all access rights in place to handle this case.

jirikuncar commented 9 years ago

logging of events

Python logging mechanism should be enough together with possible custom log handlers. One should be also able to register new signal (event) handler if we use for example Blinker library.

tiborsimko commented 9 years ago

There was an idea to use records of different types to store libraries, items, or users. Hence we can then use standard search engine with all access rights in place to handle this case.

:+1: