I am currently working on designing a web application to be used by researchers to conduct reviews. In this application there are two groups of users - participants and administrators.
Only administrators can start a review and can assign any user or administrator to participate in the review as an admin or a screener. The general workflow for each review will be:
- Search medical databases and import thousands of references.
- Screen references based on title (number of reviewers/admins Screening can be 1 or multiple). Each reviewer will screen all references. Mark each reference as included or excluded.
- Screen included references based on abstract. Same as above applies.
- Source full-text as PDF and store for included references.
- Screen included references based on full text. Same as above applies.
- Create custom forms.
- Extract data from included references.
- Export data
Throughout the progress of the review machine learning on all of the references will be done. We will also require comprehensive logging throughout the review.
My question is this, how can I best split these sections into django apps and how should I structure the required databases.
Provisionally, I've thought about having these databases:
- Users. Stores info on screeners and reviewers and which projects a tenner and admin in.
- Project. Stores basic info on each project including data extraction form. One to many relationship with references table.
- References. Stores info about each reference including inclusion status and data extraction.
I don't know how to deal with the logging. How can I do this?
Is this a sensible split and if so how should I accordingly split the steps into apps.