You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is a website and database to record accessibility evaluations of EPUB reading systems.
6
+
7
+
# For developers
8
+
9
+
[Developer getting started guide](https://github.com/daisy/epubtest-site/wiki/Developer-getting-started-guide)
10
+
11
+
## Tech notes
6
12
7
13
Back end: Express + nunjucks + graphql queries
8
14
9
15
Front end: static HTML + web component enhanced tables
10
16
11
17
Back end's back end: Postgresql database and a postgraphile db api (graphql)
12
18
13
-
# Code notes
19
+
##Code notes
14
20
15
-
## `src`
21
+
###`src`
16
22
17
-
### `actions`
23
+
####`actions`
18
24
19
25
Multipart processes, such as:
20
26
@@ -24,15 +30,15 @@ Multipart processes, such as:
24
30
* sending email
25
31
* an experimental "undo" feature to mimic transactions
26
32
27
-
### `epub-parser`
33
+
####`epub-parser`
28
34
29
35
Parse a test book into a JSON structure
30
36
31
-
### `l10n`
37
+
####`l10n`
32
38
33
39
Experimental
34
40
35
-
### `pages`
41
+
####`pages`
36
42
37
43
Entire front-end
38
44
@@ -42,14 +48,11 @@ Entire front-end
42
48
*`js`: front-end js, mostly data table stuff
43
49
*`templates`: nunjucks templates
44
50
45
-
### `queries`
46
-
47
-
GraphQL queries. Some comments:
51
+
#### `queries`
48
52
49
-
*`queries/fragments` contains fields that are collected for each item type. Sometimes there are variants of fieldsets, perhaps to avoid collecting way more data than is required, or sometimes to avoid circular includes.
50
-
*`queries/crudGenerator.js` generates basic CRUD operation queries, given a few parameters
53
+
GraphQL queries. Of note is `queries/crudGenerator.js`, which generates basic CRUD operation queries, given a few parameters.
51
54
52
-
### `routes`
55
+
####`routes`
53
56
54
57
*`admin.js`: GET admin pages
55
58
*`admin-forms.js`: POST routes for admin forms
@@ -66,13 +69,13 @@ GraphQL queries. Some comments:
66
69
*`utils.js`: Various utility functions
67
70
*`displayUtils.js`: Largely redundant display utilities which are often duplicates of front-end js table logic. Used here for creating static noscript tables.
68
71
69
-
## `test`
72
+
###`test`
70
73
71
74
Workflow tests; run with mocha.
72
75
73
-
## Caveats, other notes, etc
76
+
###Caveats, other notes, etc
74
77
75
-
### Postgraphile and column-level grant
78
+
####Postgraphile and column-level grant
76
79
77
80
Postgraphile does not support column-level grants, which is why there is a separate logins vs users table. Otherwise the login information would be theoretically visible to anyone who could view the user information (which, some of it could be viewable, for example, if the user has chosen to get credited for their work, then the results page must display their `creditAs` value, so their credits must be publicly accessible).
78
81
@@ -82,7 +85,7 @@ Note that one exception to this lies with the use of "private link" tokens. The
82
85
83
86
Another exception is the "create temporary token" function, which is right now only called by the server but again, if we ever created a public database endpoint, access to this this should be restricted.
0 commit comments