Dear Martina (and council),
Thank you so much for trying the prototype out! Glad to hear it holds up
with more ODDs. I welcome your help with design, see below for some
specific prompts.
Here is a new update for this month: https://raffazizzi.github.io/romajs/
As I mentioned, I focused on design and landed on adopting a "Material
Design https://material.io/" components library, which made it possible
to start developing a clean looking and usable interface. Given how complex
the UI will need to be, I think this is an asset, but if anyone has
objections, please speak soon. Admittedly, it has a strong Google-y feel to
it.
*How to use the prototype:*
Upload an ODD file (like this one
http://www.tei-c.org/Vault/P5/current/xml/tei/custom/odd/tei_bare.odd).
Click browse, then click on the "arrow up" button to upload and the "arrow
down" to download the new ODD. These buttons are temporary for testing and
the process will be more streamlined eventually. You can also see the
result in a screenshot below to get an idea quickly.
*Help wanted:*
*- **Test scenarios**:* ODD is complicated. There may be ways in which
elements and modules are added / removed that I might have missed. Please
read through this brief list
https://github.com/raffazizzi/romajs/wiki/Test-scenarios to see if
anything is missing.
*- **Modules & Elements UI**:* I made an attempt at keeping the list of
modules and elements tidy, though there is a lot of scrolling involved and
I wonder if anyone has an idea of how I could organize this better.
*- **Break it*: if you haven't already, try uploading your (canonicalized)
ODD and see if the modules and elements are correctly loaded. Make a few
changes and see if the new ODD: a) is preserved as much as possible; b) the
new stuff is there.
*Next Steps:*
- start working on element operations
- start working on a "dashboard" page
- start bugging people directly for help
Raff
On Wed, Apr 26, 2017 at 5:46 PM, Scholger, Martina (
martina.scholger@uni-graz.at)
Dear Raff,
I had a look at the current state of your RomaJS development and tested some .odd files. They aren't very sophisticated, so I wasn't able to break it ;-) I would volunteer to help with the development, maybe I could help with the CSS framework? Cool, what you already managed since the F2F!
Best, Martina
-----Ursprüngliche Nachricht----- Von: tei-council-bounces@lists.tei-c.org [mailto:tei-council-bounces@ lists.tei-c.org] Im Auftrag von Raffaele Viglianti Gesendet: Dienstag, 28. März 2017 23:29 An: tei-council@lists.tei-c.org Betreff: [tei-council] RomaJS development update
Dear council members,
I've completed a first phase of development of RomaJS (a placeholder name) and I would like to both give you an update and seek volunteers for the next phase of work. *The prompts for your contributions are highlighted in bold below (bring friends!).*
The code is on GitHub: https://github.com/raffazizzi/romajs
1. Summary of work:
I've have been writing this Redux / React <http://redux.js.org/docs/ basics/UsageWithReact.html> application by focusing on data operations first, user interface second. Briefly, the application is now capable of:
- reading in an ODD file from the web or from disk - reading in a source file (ie p5 subset in JSON format) - add and remove modules - add and remove elements - write an updated ODD to disk (This is actually only mocked for user testing at the moment.) - provide basic UI components for these operations (working towards what's been sketched in the wireframes <https://docs.google.com/presentation/d/ 1sUESuY9pF3DkHoQMJJjrVMV2SPFQYE1YqmGrpA3wrMM/edit> )
2. Tests
Each operation is comprehensively tested. I've aimed at creating a solid testing infrastructure that is at the core of the application development. I have created two wiki pages to help understanding and developing tests:
- a list of test scenarios https://github.com/raffazizzi/romajs/wiki/Test-scenarios - a short guide on how to write tests https://github.com/raffazizzi/romajs/wiki/How-to-write-tests
*Please look at the list of test scenarios: have I not tested something?* You'll see that the list includes different ways of including/excluding modules and elements in ODD. *Have I covered all the mechanisms for doing so? What's missing?* We could discuss this on this email or on the wiki. It would be awesome if then someone besides me would write new tests that result from the discussion!
3. Parsing ODD
In order to avoid using a heavy DOM processor, and to make it possible to include ODD directly in the application state, I've opted to convert ODD to JSON. At first I was using an off the shelf library that served me very well until I had to serialize back to XML and realized that mixed content was all screwy...
So I wrote my own library here: https://github.com/raffazizzi/squash-xml-json The library is quite central to the success of RomaJS and while it has some tests, it needs more extensive testing. *Would anyone like to help test and develop it? Or perhaps know of viable alternatives I've overlooked?*
4. Getting started with the UI
I've created basic UI components to do the operations described above. Here is the current very bare version: https://raffazizzi.github.io/ romajs/ *Please try it out with as many (canonicalized) ODD files that you have lying around. Does it do what you expect? Do you get back XML that matched what you wanted? **Please break it (hopefully it will take a few hits first).*
5. Next steps
I think I may focus more on UI development now (as per wireframes < https://docs.google.com/presentation/d/1sUESuY9pF3DkHoQMJJjrVMV2SPFQY E1YqmGrpA3wrMM/edit>). Getting started with a CSS framework library and nail down general functionality up to the point where we are now. At the same time, I'd like to get started on operations to change elements (basically creating elementSpec[@mode="change"]). *This would be a good time for others to step in the development process: others could start writing operations and tests for changing elements while I focus on UI. Or viceversa. The current module/element operations and tests provide examples of how this all works (and of course I'd be happy to explain stuff).*
6. Finally: decision tree
At the F2F we started talking about a possible "decision tree" as a way into RomaJS. I started a document <https://docs.google.com/document/d/ 1r33QbY7O0HqOHvTxZtOq_-MrYqtIE572YqPEY3JrQr0/edit> with a list of possible questions to the user; James commented on it. *Please comment and add your additions if you can. I would be thrilled if others would want to explore this further as a mind map, etc. so that it's nicely planned out before starting development on a decision tree feature.*
As development gains momentum, I hope to write similar reports to this one at least once monthly.
Raff -- tei-council mailing list tei-council@lists.tei-c.org http://lists.lists.tei-c.org/mailman/listinfo/tei-council
PLEASE NOTE: postings to this list are publicly archived -- tei-council mailing list tei-council@lists.tei-c.org http://lists.lists.tei-c.org/mailman/listinfo/tei-council
PLEASE NOTE: postings to this list are publicly archived