| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
As of v3.0.1 - 2021-02-24.
Template and Plan table relationships:
-------------------------------------------------------
| |
|n |1
----------------------------- --------------- -------------------- --------------
| answers_questions_options | | annotations | | question_options | | conditions |
----------------------------- --------------- -------------------- --------------
|n |n |n |n
| | | |
| ---------------------------------------------------------------------------------
| |
| |1
| ------------- ------------ ----------- ------------- --------
| | questions |------------| sections |------------| phases |------------| templates |------------| orgs |
| ------------- n 1 ------------ n 1 ----------- n 1 ------------- n 1 --------
| |1 | |
| | ---------------- -------- 1| |n
| | | contributors |------------| orgs | -----
| | ---------------- n 1 --------
| | |n
| | |
| |n |1
| 1 ----------- --------- --------- --------- --------
----| answers |------------| plans |------------| roles |------------| users |-----------| orgs |
----------- n 1 --------- 1 n --------- n 1 --------- n 1 --------
|n
|
|1
--------
| orgs |
--------
Themed Guidance and Plan Guidance relationships:
-------------------- -------------
| questions_themes |------------| questions |
-------------------- n 1 -------------
|n
|
|
|1
---------- --------- ------------------------
| themes | | plans |------------| plans_guidance_groups |
---------- --------- 1 n ------------------------
|1 |n
| |
| |
|n |1
---------------------- ------------- -------------------- --------
| themes_in_guidance |------------| guidances |------------| guidance_groups |------------| orgs |
---------------------- n 1 ------------- n 1 -------------------- n 1 --------
Each table's corresponding model contains the full (and most current) details of the schema including default values, indexes and foreign key relationships.
We exclude the following generic Rails columns from the descriptions below since they are common to almost every table:
The annotations table is used to store a Question's 'Example Answer' and it's question specific guidance (as opposed to themed guidance). The values in this table get displayed on the 'Write Plan' tab. An 'Example Answer' appears directly under the question's answer section. The 'Guidance' will appear on the 1st tab of the Guidance section.
Columns:
Table that stores a DMP's answers
Columns:
Join table connecting Answers to their selected QuestionOptions. This table has no corresponding model.
System/application clients of the >= v1 API (as opposed to Org Admins)
Columns:
This is a table managed by Rails
The table that stores the config/rules for a conditional template question. For example if the user answers 'no' to a question like 'Will you preserve your data' subsequent questions like 'What repository will you deposit your data?' would be hiddden. A question can also trigger an email message for example if the user identified a repository they are going to use, an email could be sent to the repository contact letting them know that a large submission is coming their way.
Columns:
This table stores the information of a research project's contributors (e.g. principal investigators, data curators, etc.)
Columns:
Stores the departments associated with the Org. User's can associate themselves and Org Admins can associate their Users to departments
Columns:
A table that logs an entry every time a user downloads their plan as a PDF.
Columns:
A way to group guidance into logical chunks. A common example would be to have an Org's primary guidance for all users in one group and then a group containing guidance that would only be applicable to a particular department or school (e.g. a medical or law school)
Columns:
The table that stores 'themed' guidance. Themed guidance is guidance that is tagged to specific themes so that it is displayed next to questions that have the same theme association. For example: "Our University prefers that all biologic data is deposited in the UniBio repository" could be associated to the 'Data Preservation" theme so that it would appear next to any questions with that theme on ANY template.
Columns:
This table is used to identify specific schemes that various identifiers are derived from (e.g. ORCID, ROR, Shibboleth, etc.). These are used in two primary scenarios: A) when an identifier has a specific pattern and is produced/managed by an external organization like ORCID (e.g. http://orcid.org/0000-0000-0000X) and B) when the identifier has special meaning or association to a service or code within the system and we need to store related information about the relationship it has to an external service (e.g. Shibboleth entityIDs). There are several Rake tasks in lib/tasks that can be used (along with the db/seeds.rb file) to populate some of these common record.
The values in this table must be managed manually. There are no associated UI screens
Columns:
A polymorphic table that stores various external identifiers used throughout the system. This table replaces the old user_identifiers and org_identifiers
Note that it is possible to store identifiers that have no corresponding IdentifierScheme.
Columns:
This table contains the list of languages that are available for your application.
They MUST correspond with languages that you have defined/available in the config/locale and config/locales directories! See the Translations Wiki for details on how to setup specific language support.
The values in this table must be managed manually. There are no associated UI screens
Columns:
This table stores all comments made on a Plan whether it is from a collaborator or during the feedback/review process.
Columns:
Join table connecting Users to the Notifications that they have acknowledged. An Notification no longer appears once the user has acknowledged it. This table has no corresponding model.
This table stores global notification messages you can display for your users (e.g. upcoming system maintenance). The entries are managed via the Admin menu.
Columns:
Join table connecting Orgs to their TokenPermissionTypes. This table has no corresponding model.
The primary table that stores information about an organization whether they are a university or a funder.
Managed Orgs are ones that have Administrators. A managed org can have templates, guidance, a logo, contact info, etc. This field replaces the old is_other flag. When a user selects (or types) a new Org from the ROR API, the system will create a new Org record that is un-managed. A super admin can switch the Org to a managed org when necessary, and then promote the user(s) to be org admins.
The org_type bitflag can have any combination of several values. Two of those values though contain special significance with regard to some of the system functionality:
Columns:
A table storing the various permissions the system uses to define user authorization
The values in this table must be managed manually. There are no associated UI screens
Columns:
A table storing information about a phase of a template. A phase is a logical division of a template (see diagram above)
Columns:
The table that stores the top level information about a DMP (aka Plan).
Explanation of DMP visibilities:
When the feedback_enabled flag is set, Org Admins for the owner's Org will see a link to the DMP on their 'My Dashboard' page
Columns:
Join table connecting Plans to their GuidanceGroup selections. This table has no corresponding model.
This table contains a Use's email notification preferences.
Columns:
This table allows us to define question types available to an Admin when creating/editing a template. The information in this table helps drive the UI functionality and logic.
The values in this table must be managed manually. There are no associated UI screens
Columns:
This table stores all of the various options for a Question whose QuestionFormat has the option_based flag set to true (e.g. a Checkbox, Select box, etc.)
Columns:
Stores a template's questions
Columns:
This table stores information about available regions. The functionality for this has not been implemented. It will be used to help tailor content for Users. For example if a country specific region is added, then we could add the region_id to Orgs and Templates so that when a user is creating a new DMP they are only shown funders and templates within their region.
The values in this table must be managed manually. There are no associated UI screens
Columns:
This table is currently in active development and subject to change. It has no corresponding UI functionality at the moment. It will eventually have a tab on the Write Plan pages that allow a user to identify various intended research outputs for their DMP.
Columns:
This table identifies which users are collaborating on a Plan and what their respective access levels are for that Plan.
These records are never actually deleted, their 'active' flag is just set to false. This is to ensure that the relationship to the authors is not lost because that is important historical information. When the active flag is set to false the user will no longer see the Plan on their 'My Dashboard' page. They will still be listed as an author though when others access or download the plan.
The available Roles are:
Columns:
This is a table that records which DB migrations have been processed. It is managed by Rails.
A logic grouping of questions within a template's phase
Columns:
This is a table storing user session info. It is managed by Rails.
A polymorphic table used to store the formatting settings (e.g. Font, margins, etc.) used when a user downloads the PDF version of their DMP.
Columns:
A polymorphic table used to store statistical metrics. The data is populated via a Rake task which should be run on the first day of each month. The various record types are:
Columns:
The primary table for a DMP template.
Warning: there should only be ONE default template. The default template is used when the user creates a Plan and specifies a Research Institution that has no template and Funder who has no template.
Published: When a template is published it becomes available when a user creates a Plan.
If an Org Admin alters a published template, a new version of the template is created. The original published version remains in place and is the one a user receives when creating a new plan until the Admin publishes the new version. There are visual icons on the Templates page to help admins understand when their template is in this state. There can be only ONE published version of a template at any given time.
A plan's template association does not change when versioning of a template occurs. The plan retains the version that was available when they created the template.
You can see which version of a template a plan has at the top of the 'Write Plan' page
If the Org is a funder and any other Orgs have customized the funder's template, then they are notified of the new version and provided with a button and screen to help them transfer over the updated changes into a new version of their custommization.
Columns:
Themes allow generic guidance to be associated with specific questions. For example the 'Data Preservation' theme could be used to tie guidance about preferred repositories to a templates question about how the user intends to preserve their data.
Columns:
Join table connecting Guidance to their Themes. This table has no corresponding model.
A table used to associate an Org and the API permissions that their user's are allowed to access. This is only applicable to Users connecting the API. ApiClients have different permission rules that will be defined via a 'subscriptions' table.
The values in this table must be managed manually. There are no associated UI screens
Columns:
This table stores Google analytics tracker codes. It allows an Org to get analytics about their user's activity on the site.
Columns:
A table that stores User information.
Columns:
Join table connecting Users to their Permissions. This table has no corresponding model.
| Back | FazBrowse Home | New Git URL |