User Tools

Site Tools


tasks:overview

Munia Roadmap

Version 1.0

Release scheduled in a not too far future.

Server

  • Document client→server commands
  • Document server→client commands
  • Generally rename task to node in code.
  • Add unit-test framework
  • Port existing, in-file/embedded unit-test to unit-test framework
  • Mark nodes as they are being dragged (dragged attribute)
  • Add positional arguments to create and move command to make it possible to alter the order of the children in a node.
  • Fix subscribing to other nodes than 0. Subscription node now always has parent id -1.
  • Fix node create when a node is moved into a subscribed area. It is missing all its attributes.
  • Compile with c++11 instead of c++17 until it can actually compile with c++17!
  • Depend on libwebsockets 2.0 instead of 2.1.
  • Disable debug (hugin) output, if configure –without-debug.
  • BUG: On create as consequence of move, also create children recursively.
  • Find way to split messages so they don't exceed max_http_header_data.
    • Use localStorage instead of cookies for collapse-state since the cookie section grew too big for lws to handle on the server-side (and wasn't even needed there, so cookies were the wrong storage choice to begin with)
  • Split messages if they get “long” (more than 512 bytes) at the first-coming message boundary.
  • BUG: Check if id is actually being subscribed to by client before unsubscribing.
  • BUG: Prevent creation of nodes with id's already in the tree.
  • Add error server command and use it wherever applicable.
  • Add password hash checks using Argon2 as sub-module.
  • Depend on libwebsockets 1.7 instead of 2.0 and make cli compile with both versions.
  • BUG: On remove as consequence of move, also remove children recursively?
  • Don't send empty responses to clients. (see munia_proto.cc:163)
  • Add tests for each of the commands:
    • login
    • logout
    • subscribe
    • unsubscribe
    • create
    • delete
    • update
    • move
  • Windows support.

Web Client

  • Add intra-node drag'n'drop for reordering.
  • Add node title edit with double-click.
  • Add attribute name/value URL-encoding of (in particular) double-quotes.
  • Add collapse buttons and store the states on cookies.
  • Add different background colors to better distinguish between group nodes and leaf nodes.
  • Show state in nodes.
  • Show description in nodes.
  • Modify state with mouse.
  • Modify description with mouse.
  • Position lineedit for editing titles at the top.
  • Make description editing use textarea instead of singleline-lineedit.
  • Make board root-node children background a different colour.
  • Add anchor tags as accepted, including src attribute.
  • Make lineedits selectable with the mouse.
  • Fix unsubscribe, not properly removing root node/board node.
  • Add markdown support in description fields.
  • Show errors as alert box.
  • Show password prompt with “remember me” checkbox for storing password in cookie and performing auto-login.
  • Add child indicator (to visualize the presence of children on collapsed nodes)
  • Add description indicator (to visualize the presence of description text on collapsed nodes)
  • Figure out a way to disable html tag support in markdown.
  • Visualise to others when a node title/description is being edited.
  • Add save/discard buttons to edits and remove discard on focus loss.
  • Use Roboto font.
  • Deleting content of title and description doesn't work

CLI Client

Version 1.1

Release not yet scheduled.

Server

Web Client

CLI Client

Backlog

Server

  • Add XML serializer/deserializer tests
  • Use getoptpp as submodule.
  • Evaluate persistence strategy (when/how is data persisted)
  • Change eXpat to pugixml in a submodule (consider using json instead?)
  • Add support for alternative storage backends (postgresql, sqlite, …?)
  • Add protected attribute.
  • Consider storing users in a special parent node, with usernames, passwords hashes, etc as attributes.
  • ACL on http requests to protect attachments, avatars, etc…
  • Refactor entire code-base to modern C++.
  • Add depth to subscribe command so for example subscribe 0 2 will subscribe to the root node with depth 2 showing only the root node itself and its immediate children (could be projects list).
  • Add attribute filter to subscriptions, so only changes matching the filter is being published (for example assignee or tags)
  • Add ubsubscribe all command option.

From TODO file (maybe still relevant?):

  • Client subscriber lists to set instead of lists.
  • Handling of invalid values in incoming messages (default values?)

Web Client

  • Add “initial command string”, stored in cookie.
  • Use “bounce move” for mouse drags.
  • Make animation when a node changes/moves to make it easier to see in the UI for other users.
  • Make animation for other UI components such as expand/collapse.

CLI Client

  • Make it work again.
  • Use getoptpp as submodule.
  • Use Replxx as submodule.
tasks/overview.txt · Last modified: 2020/07/29 15:36 by deva