NicerApp WebOS Development Direction



  1. (DONE) (2021-2022) Create a Theme Editor.
  2. (DONE) (2022) Automatic site background rotations via #btnOptions dialog's first 'setting'.
  3. (DONE) (2022) Better error display features (list full error details in seperate dialog on the site itself).
  4. (DONE) (2022-Sept) Allow Guest users to use the Theme Editor (by storing theme settings per IP address + User-Agent in the database's existing theme_settings table).
  5. (DONE) (2022-Sept) Restore the old links, like the 3D WebGL (component) demos.
  6. (DONE) (2022-Sept) Improve the database access diversity.
  7. (2022 Nov 7th) : the emerging of https://said.by as an online blogging platform for end-users in the allowed zone (as defined by the block list of the news app on https://nicer.app).
  8. (2022 Nov 8th) Release 'Stable' and 'Development' branches on github for the NicerApp WebOS 5.0 repository *and* the vividUI components.
  9. (UNDER CONSTRUCTION) (2022-Sept through 2022-Dec) Version 5.1 : Upgrade the Content Management System (blogging) features.
    Published at https://said.by.
    1. (DONE) (2022-Oct) Render username+dataID into a filled-out view : "data_by_users" table settings need to be placed in $view.
    2. (DONE) (2022-Oct) Correctly apply theme settings to all views.
    3. (DONE) Add new dataSet 'data_by_users' :
      Example records are :
      {
        "_id": "8f7b3d86191843d308811cbf54004bfb",
        "seo": "Site-Birth",
        "viewSettings": {
          "/NicerAppWebOS/apps/NicerAppWebOS/content-management-systems/NicerAppWebOS/cmsText": {
              "dataSetID": "said_by___cms_documents__user__rene__ajm__veerman",
              "dataSubSetID" : "zoZZoUfumC"
          }
        },
        "user": "Rene AJM Veerman"
      }
      
      and :
      {
        "_id": "8f7b3d86191843d308811cbf54004bfc",
        "seo": "Hello-World",
        "viewSettings": {
          "/NicerAppWebOS/apps/NicerAppWebOS/content-management-systems/NicerAppWebOS/cmsText": {
              "dataSetID": "said_by___cms_documents__role__guests",
              "dataSubSetID" : "zoZZoAfemD"
          }
        },
        "user" : "Jan Klaassen",
        "role": "guests"
      }
      
    4. (2022-Nov) Add new dataSet 'data_permissions' :
      {
        "_id": "8f7b3d86191843d308811cbf54004bAA",
        "dataSetName": "said_by___cms_documents__user__rene__ajm__veerman",
        "dataSubSetID": "zoZZoUfumC",
        "user": "Rene AJM Veerman",
        "permissions" : "find,see,view,edit,archive,delete"
      }
      
      or : (
          {
              "_id": "8f7b3d86191843d308811cbf54004bAB",
              "dataSetName": "said_by___cms_documents__role__guests",
              "dataSubSetID": "zoZZoAfemD",
              "role": "guests",
              "permissions" : "find,see,view"
          }
      
      and :
          {
              "_id": "8f7b3d86191843d308811cbf54004bAB",
              "dataSetName": "said_by___cms_documents__role__guests",
              "dataSubSetID": "zoZZoAfemD",
              "user": "Jan Klaassen",
              "permissions" : "find,see,view,edit,archive,delete"
          }
      
      )
    5. (2022-Nov) Let apps provide desktop layouts other than the default one that gets listed in /NicerAppWebOS/domainConfigs/MYDOMAIN.TLD/desktop.source.js.
      The main problem here is the dynamic nature of the desktop layout.
      This will require a new approach to assembling desktop layouts : the factory supplied but user-defined desktop layout, stored in a database connection as pure JSON with some specialized syntax that does not require an eval() at any stage of processing, but rather careful regexp match operations followed by a set of specific allowed js calls once the data in the desktop layout has passed the filtering stage.
      At a later stage, this will also enable desktop layouts to be re-arranged by drag-and-drop and mouse resizing of windows as you would do in an Operating System desktop environment.
    6. (2022-Nov) Build a vividDialog #siteToolbarPermissions and list that in /NicerAppWebOS/domainConfigs/MYDOMAIN.TLD/desktop.source.js, for '/NicerAppWebOS/apps/NicerAppWebOS/content-management-systems/NicerAppWebOS/blogEditor' to specify 'permissions' on any given 'dataSubSet' ('table row' in SQL, 'database document' in couchdb), a feature that is lacking in the base layers of any database server system and thus left to business logic code supplied by me.
    7. (2022-Nov) Enforce the permissions system in all scripts that edit or display dataSubSets (table rows/database documents).
      1. (2022-Nov) Modify the editDataSubSet() function in /NicerAppWebOS/logic.databases/generalizedDatabasesAPI-1.0.0/class.database_API.php and /NicerAppWebOS/logic.databases/generalizedDatabasesAPI-1.0.0/connectors/class.couchdb-3.2.2_1.0.1.php to check for permissions.
        Route all calls to edit the data through this function.
      2. (2022-Nov) Add a function viewDataSubSet() in /NicerAppWebOS/logic.databases/generalizedDatabasesAPI-1.0.0/class.database_API.php and /NicerAppWebOS/logic.databases/generalizedDatabasesAPI-1.0.0/connectors/class.couchdb-3.2.2_1.0.1.php and let it check for permissions.
        Route all calls to view such data through this function.
    8. (2022-Nov) Copy '/NicerAppWebOS/apps/NicerAppWebOS/content-management-systems/NicerAppWebOS/blogEditor' to '/NicerAppWebOS/apps/NicerAppWebOS/applications/2D/dataSetsExplorer' (which accesses and edits data from the database and/or the filesystem) and abandon the 'blogEditor' app (rename it to 'blogEditor.DEPRACATED') in favor of the new 'dataSetsExplorer' app.
    9. (2022-Nov) for the blogEditor/dataSetsExplorer, move the contents of #siteToolbarLeft into the new #siteToolbarExplorer, and build a new vividDialog #siteToolbarShortcuts and list both in /NicerAppWebOS/domainConfigs/MYDOMAIN.TLD/desktop.source.js, fill it with a jstree component and allow drag and drop between #siteToolbarExplorer for the blogEditor/dataSetsExplorer and #siteToolbarShortcuts.
    10. (2022-Dec) Allow automatic reloading of the blogging interface, to support multiple people editing a single set of documents/pages (dataSubSets) in parallel.
      Allow access to the version history of dataSubSets.
    11. (2023-Jan) Version 5.3 : Start work on a custom HTML WYSIWYG rich-text editor component of my own, since tinymce is not compatible with CSS animations or editing of any CSS properties, or the addition of js components to a given HTML selector.
  10. (2022-Dec) Version 5.1 : Restore the automatic retrieval of new backgrounds download routines for nicerapp via free to use methods of delivery at Google image search and (TODO :)Bing image search.
  11. (2022-Dec) Version 5.2 : Upgrade the way themes and specificities work.
    1. NicerApp Web-OS should by default supply the following :
      1. default css themes in factory supplied 'dark-birth' and 'light-birth' css files (in the folder-file-formats used by the import-export features of NicerApp WebOS), which are to be used in case no database server can be reached.
      2. vividTextThemes (this is a piece of JSON with CSS embeded into it) must start to support rgba(x,y,z,a) notation.
      3. supply the proper finalized theme in the HTML output of each new page load.
    2. and an end-user should be able to :
      1. assign any background and theme to be used (or force them into such a theme) on first view by unknown end-users, certain groups, or certain individuals,
        via the logic.userInterface/photoAlbum/5.0.0, or via a child menu item in the 'Background' #siteMenu root-level entry.
      2. import and export of a theme or several themes at the same time (a theme is a simple JSON data piece, around 1Kb to 5Kb large).
  12. (2023-Jan-Feb) Version 5.3 : Upgrade the Theme Editor : 2 new tab pages :
    1. pick (with a custom mouse cursor, or by entering a jQuery or CSS selector) a 'focus' for any number of 'themes' for any given 'specificity' on a NicerApp powered website.
    2. adds the ability to define several 'vividTextSubTheme' settings, which become part of the theme being saved for some specificity, by the end-user, who is a part of certain groups.
  13. (starting 2023-Feb/Mar) Upgrade the news app and vividDialog : add siteToolbarLeft functionality :
    1. add/enable/disable/remove any URL to a combination of lists that are each given a name, which get stored in several database-stored dataSubSets (records/documents) inside a dataSet (table/couchdb-database).
    2. the ability to assign specific 'theme' and 'sub-theme' settings to such a URL.
    3. the ability to do keyphrase searches (perhaps later with 'or' and 'and' logic support) on the news content gatered, and paint that content with specific 'theme' and/or 'sub-theme' settings.
      (putting all of this in siteToolbarLeft and the rest in the siteThemeEditor, and that those can already be shown at the same time, means you can edit *all* user-interface settings for *any* app or service on any HD screen or pad screen.
    4. let vividDialog have a vividMenu, with vividButton icons that will lead to vividMenus and vividDialogs and vividDialogPopups, at the top-right of it's borders.
      the contents of this menu should be defined in a <UL> structure (that can, if needed, get loaded with fresh content via AJAX), much like the vividMenu already is today.
  14. (2023-Jan-Feb) Figure out a way to store the width and height of each background found in the filesystem in the output of .../NicerAppWebOS/domainConfigs/DOMAIN.TLD/ajax_backgrounds_recursive.php and .../NicerAppWebOS/domainConfigs/DOMAIN.TLD/ajax_backgrounds.php.
    (NOT DONE) Then use this information in the backgrounds menu to select only elligible backgrounds, and popup an error message 'No backgrounds found, reverting to search key = {$someSearchKey}' when no backgrounds are found for the current search / menu-option.
  15. (2023-Jan-Feb) Show a small error window for a short time when a page can't load. Revert the location-bar to it's old location afterward.
  16. (2023-Jan-Feb) For NicerApp WebOS 5.1, improve the vividMenu, vividDialog and vividButton components.
    1. add a 'pick the central rainbow color' vividMenu option, with a color-deviation range setting, to #btnOptions_menu
    2. improve menu display features :
      1. restore the opacity features of the old much slower menu code.
      2. add the ability to move from a menu-item into a vividDialogPopup component.
      3. add the ability to toggle an on/off state (in combination with a 'hover' state(class)) for any menu item.
    3. upgrade the vividButton to it's final version 5 code :
      1. add the ability for disabled or enabled, normal or selected, hoverOn or hoverOff extra class names to any vividButton html element. and respond accordingly to those classes in the vividButton js, of course.
      2. for text menu items : add the ability to automatically determine height (at a minimum label font size) of the menu-item.
      3. for icon and text menu items : add the ability to add any number of ordered layers in CSS, Canvas, SVG or even WebGL. as seperate files that get referenced from a centralized core of vividButton5 code.
      4. retain the ability to use both an icon and a text menu item together.
  17. (2023-Feb) Full server backup facilities within NicerApp WebOS. Currently this is only needed for couchdb data and IMAP Maildir data), to other servers on the LAN or even outside the LAN of the web server, and to zip files (by using the php7.4-zip ubuntu OS library, with progress bar for the zip file creation processes, and also with restore functionality built right into the browser.
  18. (2023-Mar) Build a view port into https://wikipedia.org data, whose content one may re-use without legal consequences, and which is *great*. :D
  19. (2023) Facebook-like timeline features with it's own look, feel and artwork.
  20. (2023) Basic Google Drive like facilities (to facilitate large attachments in email).
  21. (2023) Forums features.
  22. (2023) Payment platforms (as plugins) for paypal.com, creditcards, and the Dutch banking system iDeal.
  23. (2023/2024) Integration of oAuth (Google and Facebook authentication systems).
  24. (2023/2024) Webshop functionality.
  25. (2024) Webmail features that can hopefully work with another IMAP data provider like Gmail and Hotmail as the primary email (backup) provider, IF Gmail and/or Hotmail still allow this.
  26. (2024/2025) Music production app via linux commandline app sonic-pi, integration of that app with payment modules and musicPlayer.