Updated wiki about FOSS NarraFirma Mithril-based webapp

93 views
Skip to first unread message

Paul D. Fernhout

unread,
Nov 25, 2015, 8:34:50 AM11/25/15
to mith...@googlegroups.com
I updated the "Who Uses Mithril" wiki page with information about a FOSS
webapp my wife and I developed called NarraFirma:
https://github.com/lhorie/mithril.js/wiki/Who-Uses-Mithril

NarraFirma[1] - NarraFirma is a FOSS multi-user webapp with about forty
virtual pages that is a companion to a Creative-Commons-licensed 700
page textbook called "Working with Stories in Your Community or
Organization" (by one of the webapp authors). The webapp leads people
step-by-step through a complex process called "Participatory Narrative
Inquiry" that supports collective sensemaking about issues of importance
to the community. The webapp was year-long labor of love by a
wife/husband team (Cynthia Kurtz who did most of the application design
based on her book / Paul Fernhout who did most of the coding and
architecture). The webapp was first developed about three-quarters of
the way towards completion in JavaScript and Dojo/Dijit/dgrid/GFX and
then refactored into TypeScript and Mithril and D3 to make further
development and maintenance easier (the git repository has over 3000
commits). The app can be hosted either as a WordPress plugin or as a
Node.js app, where both backends support a custom triplestore
architecture that the webapp clients communicate with via messages that
cause Mithril updates in the clients. NarraFirma can be installed in a
WordPress site with just a couple clicks via WordPress.org. The
WordPress admin GUI also uses Mithril. Several pages of the webapp
display interactive statistical graphs and interactive clustering
diagrams using D3 code which is wrapped in Mithril. The webapp has a
general purpose "grid with item panel" in Mithril as well as several
other custom widgets (under webapp/source/applicationWidgets) which are
composed into virtual pages defined by specification files using a panel
builder approach. Source code is available under the GPLv2 or later on
GitHub here[2]. The main site also hosts an example project to play with.

[1] https://narrafirma.com/
[2] https://github.com/pdfernhout/narrafirma

--Paul Fernhout
http://www.pdfernhout.net/
====
The biggest challenge of the 21st century is the irony of technologies
of abundance in the hands of those still thinking in terms of scarcity.

Bondi French

unread,
Nov 29, 2015, 2:27:03 AM11/29/15
to mithril
I had a look at NarraFirma, congratulations! It looks like a massive effort.
Would be great if you could share what lessons learned or patterns you found useful or diificulties integrating with other libraries while working with Mithril brought up.

Impressive work, well done again! 

Paul D. Fernhout

unread,
Dec 1, 2015, 9:15:08 PM12/1/15
to mithril
Bondi-

Thanks for the kind words about NarraFirma. I am indeed pleased with the results myself -- but after all, I'm standing on the shoulders of giants like Leo Horie. :-) Thanks again for such a wonderful system like Mithril, Leo!

Thanks also for asking such a great question. In response to your request, at the next link I put together an essay combining some text I wrote in a couple other contexts along with some new text to address the specific things you asked for. It goes into some detail about the conversion of NarraFirma from JavaScript, Dojo, and GFX to TypeScript, Mithril, and D3, including some lessons learned, a useful pattern or two, some difficulties encountered, and even some remaining loose ends.
http://pdfernhout.net/on-moving-to-mithril-and-typescript-for-narrafirma.html

BTW, if anyone wants direct programming help with a similar conversion of an existing project from another framework to Mithril and/or from JavaScript to TypeScript, or even something new from the ground up in Mithril and TypeScript, at the moment I'm available for remote work. :-)

--Paul Fernhout
http://www.pdfernhout.net/
====
The biggest challenge of the 21st century is the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.

Reply all
Reply to author
Forward
0 new messages