-
Notifications
You must be signed in to change notification settings - Fork 0
/
TODO.html
273 lines (271 loc) · 12.4 KB
/
TODO.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
<!DOCTYPE html>
<html lang="en">
<head>
<title>COLD (Controlled Object List and Datum (Concept))</title>
<link href='https://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="https://caltechlibrary.github.io/css/site.css">
</head>
<body>
<header>
<a href="http://library.caltech.edu" title="link to Caltech Library Homepage"><img src="https://caltechlibrary.github.io/assets/liblogo.gif" alt="Caltech Library logo"></a>
</header>
<nav>
<ul>
<li><a href="/">Home</a></li>
<li><a href="index.html">README</a></li>
<li><a href="LICENSE">LICENSE</a></li>
<li><a href="INSTALL.html">INSTALL</a></li>
<li><a href="user_manual.html">User Manual</a></li>
<li><a href="about.html">About</a></li>
<li><a href="https://github.com/caltechlibrary/cold">GitHub</a></li>
</ul>
</nav>
<section>
<h1 id="action-items">Action items</h1>
<h2 id="bug">bug</h2>
<h2 id="next">next</h2>
<ul class="task-list">
<li><label><input type="checkbox" />Add directoryLookup() call on submit
of people_edit</label></li>
<li><label><input type="checkbox" checked="" />Make sure
<code>author_id</code> and <code>thesis_id</code> continue to be mapped
on reloading data from CSV file, if a person has an “clpid” and only are
alumni then that should go into the <code>thesis_id</code>
field.</label></li>
<li><label><input type="checkbox" checked="" />Display name should
always be taken from Caltech Directory</label></li>
<li><label><input type="checkbox" checked="" />If the name fields
family_name, given_name should be taken from the Caltech Directory if
empty</label></li>
<li><label><input type="checkbox" />When Caltech is checked active the
ROR should populate with https://ror.org/05dxps055 (client side
code)</label></li>
<li><label><input type="checkbox" checked="" />Add “internal_notes”
property to people object, group object and issn (journals)
object</label></li>
<li><label><input type="checkbox" />Write reports</label>
<ul class="task-list">
<li><label><input type="checkbox" />Prototype a reports request system
in COLD</label>
<ul class="task-list">
<li><label><input type="checkbox" />Report request and availability
UI</label></li>
<li><label><input type="checkbox" />Report runner (run on data
processing system not apps)</label></li>
</ul></li>
<li><label><input type="checkbox" />need a report that finds Caltech
People ID that do not math CaltechAUTHORS author_id</label></li>
<li><label><input type="checkbox" />need a report that identifies what
advisor_id and committee_ids from thesis have no matching
clpid</label></li>
<li><label><input type="checkbox" checked="" />People (should be written
to feeds)</label></li>
<li><label><input type="checkbox" checked="" />Group (should be written
to feeds)</label></li>
<li><label><input type="checkbox" />RDM vocabulary files report (should
be written to feeds)</label></li>
<li><label><input type="checkbox" />Funders</label></li>
</ul></li>
<li><label><input type="checkbox" />Write push of CSV files to datawork
for inclusion in feeds (implemented but commented out in feeds fetch db
script)</label></li>
<li><label><input type="checkbox" />Add button to pull in current
directory data</label></li>
<li><label><input type="checkbox" />Write data flow document for cold
people and group data indicating we’re using public data from the
directory as authorative and where publish the group and people data to
in feeds</label></li>
<li><label><input type="checkbox" />cold needs a ROADMAP document to
guide development as cold’s needs seem ambigious</label></li>
<li><label><input type="checkbox" />Implement client/server validation
for objects and attributes in dataset</label></li>
<li><label><input type="checkbox" />Implement validation in datasetd
based on models</label></li>
<li><label><input type="checkbox" />People</label></li>
<li><label><input type="checkbox" />Groups</label></li>
<li><label><input type="checkbox" />Funder</label></li>
<li><label><input type="checkbox" />Vocabularies</label></li>
</ul>
<h2 id="someday-maybe">Someday, maybe</h2>
<ul class="task-list">
<li><label><input type="checkbox" />UI Widgets to manage objects in
list</label>
<ul class="task-list">
<li><label><input type="checkbox" />Person and Organization
widget</label></li>
<li><label><input type="checkbox" />Group widget</label></li>
<li><label><input type="checkbox" />Funder widget</label></li>
<li><label><input type="checkbox" />Vocabulary widgets</label></li>
</ul></li>
<li><label><input type="checkbox" />Implement a CL-v2.js with support
for feeds, cold and RDM dataset sources</label></li>
</ul>
<h2 id="completed">Completed</h2>
<ul>
<li><label><input type="checkbox" checked="" />Remove mkpage dependency,
replace with Pandoc 3 templates from
github.com/caltechlibrary/codemeta-pandoc-examples</label></li>
<li><label><input type="checkbox" checked="" />Setup PostgreSQL user and
cold database (replaced with SQLite3 and datasetd)</label></li>
<li><label><input type="checkbox" checked="" />Migrate current SQL
schema to PostgreSQL schema (replaced with SQLite3 and
datasetd)</label></li>
<li><label><input type="checkbox" checked="" />Replace MySQL with
PostgreSQL</label></li>
<li><label><input type="checkbox" checked="" />Configure PostgREST to
provide JSON API (replaced with datasetd)</label></li>
<li><label><input type="checkbox" checked="" />Configure Pandoc in
server mode to provide a template engine (replaced with handlebars via
Deno)</label></li>
<li><label><input type="checkbox" checked="" />Implement paging views in
PostgreSQL view SQL views (replaced with datasetd plus
Deno)</label></li>
<li><label><input type="checkbox" checked="" />Data Models (convert from
RDM and current Go structs then to TypeScript interfaces)</label>
<ul class="task-list">
<li><label><input type="checkbox" checked="" />People</label></li>
<li><label><input type="checkbox" checked="" />Groups</label></li>
<li><label><input type="checkbox" checked="" />Funder</label></li>
<li><label><input type="checkbox" checked="" />Vocabularies (implemented
example vocabularies as individual dataset collections)</label></li>
</ul></li>
<li><label><input type="checkbox" checked="" />Implement end point
tests</label>
<ul class="task-list">
<li><label><input type="checkbox" checked="" />Funders end
points</label></li>
<li><label><input type="checkbox" checked="" />Groups end
points</label></li>
<li><label><input type="checkbox" checked="" />People end
points</label></li>
<li><label><input type="checkbox" checked="" />Vocabulary end
points</label></li>
</ul></li>
<li><label><input type="checkbox" checked="" />Implement http API end
points (using datasetd for API)</label>
<ul class="task-list">
<li><label><input type="checkbox" checked="" />Funders end
points</label></li>
<li><label><input type="checkbox" checked="" />Groups end
points</label></li>
<li><label><input type="checkbox" checked="" />People end
points</label></li>
<li><label><input type="checkbox" checked="" />Vocabulary end
points</label></li>
</ul></li>
<li><label><input type="checkbox" checked="" />Document setup,
configuration and database requirements</label>
<ul class="task-list">
<li><label><input type="checkbox" checked="" />Add Makefile</label></li>
</ul></li>
<li>[D] Add link to cold and cold admin on apps.library.caltech.edu
(cold public API is feeds, cold admin is consolidated fully into the
cold repo)</li>
<li><label><input type="checkbox" checked="" />Figure out how to
refactor Makefile to complete the a release process</label></li>
<li><label><input type="checkbox" checked="" />Add “staff” people
object</label></li>
<li><label><input type="checkbox" checked="" />Consolidate
<code>/cold/</code>, <code>/cold/admin/</code> and
<code>github.com/caltechlibrary/cold_directory_sync</code> into the main
cold repository</label>
<ul>
<li>Per 2024-10-08 project meeting, the public API of COLD is feeds</li>
<li>COLD is responsible for pushing changes to feeds, RDM can pull
changes from feeds</li>
<li>Run a report of clpid and related author_id, advisor_id,
committee_member_id, etc.</li>
</ul></li>
<li><label><input type="checkbox" checked="" />Division should only
populate in with directory sync if it is empty</label></li>
<li><label><input type="checkbox" checked="" />Do final load of data
from the spreadsheet in GitHub</label></li>
<li><label><input type="checkbox" checked="" />Figure out if I need
refactor people, groups, funders to tease out the type definitions
(i.e. interface and class) into</label>
<ul>
<li><label><input type="checkbox" checked="" />Review
https://jsr.io/<span class="citation"
data-cites="deno/emit">@deno/emit</span>, this is probably the right
choice for the project but not certain, need to figure out how clean a
“compile to single JS file” I can get</label></li>
<li>Looks like the “bundle” command line compile option in deno maybe
helpful here, see <code>deno --help bundle</code>
<ul>
<li>Looks like “bundle” is depreciated, see
https://docs.deno.com/runtime/manual/tools/bundler/</li>
<li><label><input type="checkbox" checked="" />Review
https://esbuild.github.io/</label></li>
<li><label><input type="checkbox" checked="" />Review
https://rollupjs.org/</label></li>
</ul></li>
</ul></li>
<li><label><input type="checkbox" checked="" />Figure out how switching
from a read view to an edit view should work (e.g. URL parameter like
<code>view=...</code> or do I expanded URL end points?). The problem is
keeping the URL end points managable while still maintaining a simple
implementation. I POST can be used to submit form to the same URL as the
edit view is, edit view would use GET to retrieve the populated
form.</label></li>
<li><label><input type="checkbox" checked="" />Figure out if Mustache
templates are enough to support UI. If not then find an alternative
quickly</label>
<ul>
<li>switched to Handlebars</li>
</ul></li>
<li><label><input type="checkbox" checked="" />refactor modules for
people and groups so that the web configuration like base_url can flow
through the app. This could be done by making a app_group and app_people
object that held the various handlers. It could also be done through the
config module exposing global values. Not sure right approach.</label>
<ul>
<li>fixed by adopting relative linking throughout templates</li>
</ul></li>
<li><label><input type="checkbox" checked="" />Figure out how to render
TypeScript to JavaScript for browser side interactivity if there is time
to implement that</label>
<ul>
<li>See
https://rsdoiel.github.io/blog/2024/07/03/transpiling_with_deno.html</li>
</ul></li>
<li><label><input type="checkbox" checked="" />Update UI labeling based
on RDM project meeting suggestions, see
https://caltechlibrary.atlassian.net/wiki/spaces/InvenioMigration/pages/3282960385/2024-08-13+Project+Team+Meeting+Notes</label></li>
<li><label><input type="checkbox" checked="" />Make sure we auto tag
<code>include_in_feeds</code> based on current algorithms on importing
data</label></li>
<li><label><input type="checkbox" checked="" />Write a cronjob that
updates COLD from directory using the old cdh harvester code or public
vcard</label>
<ul class="task-list">
<li><label><input type="checkbox" checked="" />investigate how much of
the vcard is useful, important use case is dual appointments</label>
<ul>
<li>Does not necessarily show division affiliation</li>
<li>If “ORG” is shown it maybe a semi-colon delimited list</li>
<li>Doesn’t show BIO field</li>
<li>Can be seen off campus so information provided is public</li>
<li>There are a few better Golang packages supporting decoding VCARD
data depending on our needs</li>
<li>Very easy to retrieve and doesn’t require API key, must know IMSS
username</li>
<li>Only supports the vcf format of data (not XML or JSON)</li>
</ul></li>
<li><label><input type="checkbox" checked="" />investigate what we get
from the current implementation LDAP API provided by IMSS</label></li>
<li><label><input type="checkbox" checked="" />division associations for
people should be additive but require manuall removals on
autoupdates</label></li>
<li><label><input type="checkbox" checked="" />Fields like bio and
descriptions can be overwritten by directory data</label></li>
</ul></li>
</ul>
</section>
<footer>
<span>© 2022 <a href="https://www.library.caltech.edu/copyright">Caltech Library</a></span>
<address>1200 E California Blvd, Mail Code 1-32, Pasadena, CA 91125-3200</address>
<span><a href="mailto:library@caltech.edu">Email Us</a></span>
<span>Phone: <a href="tel:+1-626-395-3405">(626)395-3405</a></span>
</footer>
</body>
</html>