Skip to content
jrwdunham edited this page Dec 1, 2014 · 4 revisions

Dative Development Plan

Here are a set of planned features for Dative. They are sorted (though not super strictly) from most to least important. Note that you can substitute "datum" where I write "form".

  • authentication
    • login/logout using FieldDB
    • forgot password
    • choose corpus (for LingSync API)
  • forms browse (view & collection)
    • buttons/shortcuts for actions on collection (e.g., expand/collapse all)
    • pagination
    • global operations on result sets (e.g., export, remember)
    • (note: this is for search results, simple browsing and even viewing datalists/subcorpora)
  • form actions (view & model)
    • delete (confirm dialog)
    • duplicate
    • update
    • history & reversion
    • remember (LingSync data structure needs a "memory"/"clipboard" representation)
    • export (flavours of (Xe)LaTeX, .txt, .csv, .tsv, .docx)
    • associate (to files)
    • (other good actions of Chrome App, OLD or SpreadSheet?)
  • form IGT view
    • interlinear with word-alignment
    • other fields and metadata invisible by default (toggleable)
    • (morpheme cross-referencing visual consistency feedback; LingSync data structure complications)
  • form table view
    • like a real spreadsheet (I think there are ready-made JS/Backbone components for this...):
      • editable cells
      • resizable columns
      • pagination or infinite x/y scrolling?
  • form history view
    • view the past versions of forms
    • revert a form to a past version
  • form bulk update interface
    • replicate features of FLEx's bulk update interface
  • import interface
    • replicate/reuse Chrome App's import interface
  • export interfaces
    • export single form
    • export form collection (search result, (sub)corpus, memory)
    • export text (forms plus prose with markup, see OLD)
  • search interface
  • search as resource interface
    • browse searches
    • search searches
    • view searches
    • view a search
    • duplicate a search
    • delete a search
  • form create/update interface
    • automatic IGT rendering during form creation/modification
    • graphical keyboard (from inventories and user-specifiable)
    • (orthography conversion)
    • input validation
  • system settings
    • orthography specification
    • input validation configuration
    • orthography conversion configuration
    • IGT LGR configuration
  • user settings
    • choose an interaction orthography
    • (autoglosser toggler, OLD parser configuration)

CouchDB for Beginners (like me):

curl -X PUT http://username:password@127.0.0.1:5984/jrwdunham-firstcorpus/_design/log -d '{"validate_doc_update":"function(newDoc, oldDoc, userCtx) { log(userCtx); }"}'
var validateDocUponUpdate = new FieldDB.FieldDBObject({"validate_doc_update":"function(newDoc, oldDoc, userCtx) { log(userCtx); }"});

validateDocUponUpdate.dbname = "jrwdunham-firstcorpus";
validateDocUponUpdate.save();