Saturday, November 26, 2016

advanced functions

November 26,2016 - written
November 27, 2016 - priorities and status
December 9, 2016 - priorities and new points
December 16, 2016 - BERICHT will be changed to arry

The functions for the user and the ui are pretty much finished, the administrator functions are secured and a review of the blog written so far shows, there have been more ideas beyond basic functionality and security.
  • Security
    • open - automatic upload from server server to app (MongoDB to IndexedDB) when user logs in, so far there is only an automatic download from app to server with login and entering new data
    • done - captcha for registration of new users, uses captchapng and pnglib
      • return "\211PNG\r\n" + "\x1a" + "\n" + this.buffer.join(''); could be fixed
    • later - captcha for login from app
    • open - simple DOS-attack-recognition
    • later - encryption of data in the server-database
    • done - automatic login with cookie or indexedDB from client
  • system availability
    • done - automatic refresh of push-server connectivity, retry has to use healthcheck, not pull with longwait
    • later - buffering messages when connection is busy
    • open - save chat to database on the server (not available without connection)
    • later - react to suspend/resume in appMode
  • User convenience
    • done - show aggregated data, income and expenses aggregated to months with drilldown to details
    • done - show photos from the local storage, calculate thumbnail and store the sumbnail in the database, new section in the diary entry
    • open - more data on photos to be stored (may be origin, timestamp)
    • later - option to store the local photo to a cloud server
    • open - change from BERICHT as string to BERICHT as array of structures with text and an inner array for comments to the original diary entry. 
    • open - change or delete data, this requirement is hard to do, because at the moment concurrent access is allowed and a merge logic is done on the server to synchronize concurrent updates, that only can give additional text-data or additional rows in the tables for income, expenses and time-entries. Corrections to data in the tables have to be done by corrective records, e.g.:
      • an income of 100 had been entered
      • that was an error, 10 would have been correct
      • so a new row has to be entered with -90 als corrective row, then sum will be correct.
      • it's also possible to enter two corrective records, one with -100 to compensate the false rows and one row with 10 as correct value.
    • open - filter on different channels
    • open - user groups on channels
    • open - allow valuation of messages (aggree, disagree,  don't understand, ignore)
    • open - allow comment on messages
    • open - mark diary entries for additional publishing as message (chat)
    • later - show merged data of the own diary and the diaries with coreader-allowance
    • later - allow comment on diary entry in the merged display of data
    • open - pdf-export, a basic test has been implemented, the output of a pdf does not work on every device, more tests are needed, before the complete contents of the diary will be processed. The conversion of the html-tags that are provided by CKEditor to pdfmake compatible tags is under research and construction
    • eMail export
    • camera and picture stores
    • translation
    • speech to text
  • development system and contents of my book 
    • why a development system
      • what is a program
      • what is programming
      • what is programmer productivity
      • what is so special in app- and web-programming
    • app-design
      • pages
      • functions
      • data and JSON-objects
      • data and ui-objects
      • data-mappings
      • callbacks
      • async.waterfall
      • async.parallel
    • users, roles and rights to functions and api's
    • header
      • standard functions
      • flyin menues
    • content
      • segment, grid-cell
      • listpanels
        • list
        • collapsible
        • accordeon
        • responsive table
      • entrypanels
        • fieldsets
        • fieldtypes
        • declarative field definition (div-label-input) in imperative way
      • mappings of ui, document and no-sql database
    • footer
      • standard functions
      • dynamic functions
    • general functions
      • uihelper
      • uisystem
  • new applications
    • homepage administration and authoring
      • company
      • news
      • calendar
      • product catalog
      • references
    • homepage presentation
      • http-server
      • backend-server
      • chat-server

No comments:

Post a Comment