-
Notifications
You must be signed in to change notification settings - Fork 7
Internal aspects
DB import starts with a config file listing categories, books, and features.
Each category may contain several books, but each book belongs to only one category. The features may be found in more than one book within that category.
The import script opens each book and builds the following:
- a structure of categories, features, and tests.
- a list of source EPUBs, including their descriptions
- tests are flagged as new or changed, using the existing rules
- existing evaluations are migrated test by test
- Reading system: name, version, etc;
- Testsuite: References a set of tests
- Evaluation: references a single testsuite, a single reading system, and a set of test results
Some testsuites can have multiple evaluations per reading system (e.g. accessibility). Others are restricted to one.
User types: admin, member, anonymous (not logged in)
Rules:
- Reading system visibility: all logged-in members can view all reading systems and can add an evaluation if one does not exist
- Published reading system: has at least one public evaluation
- Private evaluation: visible only to admin and owner
- Member-only evaluation: visible to logged-in members
- Features page
- Organized by top-level category and feature group
- Reading systems page
- List of reading systems with scores for each top-level category.
- Reading system page (individual rs)
- Breakdown by feature and ultimately by test.
- Scores shown as overall/category/feature.
- Feature page
- Show RS performance for each feature.
- URL should be linkable.
- Management page
- Similar to current
- Archive page
- Similar to current
- About page
- Move current 'index' page to about
- Evaluation form fill
- Present as category=>book=>test
- keep the tests in-order
Different testsuites follow different scoring rules.
Mainstream/BISG: percentage or fraction Accessibility: all/some/none.
Need different scoring strategies, stored separately from the testsuites themselves.
Pre-calculate as much as possible and store in the database to increase response speed.