Scope MIFOSX-117
TO DISCUSS: UGD only? SMS? Future outgoing integration event REST calls? PDF??
Better defined functional use cases (incl. UI) + some example expected documents??
Server-side vs. Client-side
It's simpler to keep template processing on the server-side, only. For now at least.
Template Engine
User generated documents should use a template engine. Candidates to choose from include:
- Velocity
- the most well known one, but there is probably better / more up-to-date meanwhile
- FreeMarker
- may be the 2nd most well known one?
- StringTemplate
- by someone who knows a thing or two about how to write a parser.. despite using System.exit() in them (related Google+ post)
- Xtend Template Expressions
- I know it looks static / compile-time, but Michael should be able to put together an example using this in "interpreted" mode, if interested
- very very strong static typing Eclipse tooling - but that's not our use case
- Jamon
- ?
- Google Closure Templates (Soy)
- could run client-side (JS) - although not sure it make sense to exploit this in Mifos
- Eclipse Editor available - not our use case, just sayin'
- Cambridge
- HTML specific? It "supports Servlets, JAX-RS, Play (Spring later)" - unclear - what does that have to do with templating?
- duel
- could run client-side (JS) - although not sure it make sense to exploit this in Mifos
- probably similar to Closure? Better pick a more well known one? It is interesting, double check project background/activity
- jsilver
- dead?
- Other ones? List above is just compiled from stuff Michael bookmarked on delicious over the years.. may be I missed the one best for us.
TODO Read up.. learn about features.. compare them (blog?)... pick one!
Services (internal)
TODO Document new Java-level interfaces, packages used, utilities needed, etc. etc.
TODO Write some early code! No UI here, yet. No REST interface even. Just TDD! Goal is to illustrate templating, but accessing real entities already (including dynamic custom fields!), consider relationship traversal management, list iteration, etc.
Database Changes
TODO Document DB changes.. new tables (incl. column details), or changes to existing tables.
REST API
TODO Document REST API
UI Mockups
TODO Discuss & refine existing draft mockup. May be after some of above is decided?
Out of Scope
TODO Few paragraphs about what we're NOT doing? Non-HTML (e.g. PDF) ? Sophisticated DnD Report Designer?