2023 CW 26 - Development Progress

2023 CW 26 - Development Progress

Functionality

I have decided to write a blog post every Friday about the development that has been done on Contexty. These blog post are both for the future and for the present. For the future, so it can be looked back what happened at the cradle of Contexty. And for the present because it is so difficult to see the progress when there are still so many things to do.

The biggest change of this week is Email Sending with Gmail Integration. At the moment, the only integration that is supported is the Gmail Integration. It is being used to work out the details of how and Integration Plugin should work, what interfaces it should implement, what responsibilities should belong where. It also means that the existing Beekeeper and Jira plugins no longer work.

In order to develop Email Sending, a bunch of work needed to be done. Firstly, the Composer was built. Composer is a very important part of the project. It needs to be generic enough that no integration require to build a new one, but also specific enough that it can provide functionality for those integrations. For the time being, there are a bunch of simplification in the Composer that needs to be addressed in the future:

  1. The editor is still a plain textarea (no rich text functionality)
  2. The recipients can't be selected, their address needs to be typed in
  3. No way to distinguish recipients if they should be addressed, or they should only get a carbon copy (CC)

As the Composer was added to the UI, the History design was also adjusted. It is pulling only the last 20 items from the history instead of the whole history. There was some preparation made to support pulling on scroll, but it's not implemented yet. Also displaying HTML emails happen now in iFrames for security reasons (The secureness of this solution still needs to be checked).

As a general UI improvement, I have added to most of the action buttons a loading indicator. Now users have feedback if the action is being processed or now.

Technology

On the technology side, I have changed how the transactions are handled. So far there was no transaction handling and it caused some issue during email sending. The solution is mostly working, but we need to cover some edge cases.

Things left for next week:

  • Email sending:
    • Markdown composer (quill.js)
    • Recipient selection (To, CC, Bcc)
  • History
    • pull on scroll - when scroll reaches top or bottom of the currently loaded page.
  • Technical challenges
    • Fix all transactional issues

What comes next?

The list below is not a definitive list. I'm focusing on still what is above, but I'm keeping the top of the backlog clean, so I can easily jump on the next task. But anything can come in, or re-prioritization might happen.

My plan currently to continue:

  • Add Archived state, so the history items can get hid.
  • Support Read state
    • add read state to the system
    • sync read state back to Gmail
    • open history at the last read item
  • Address book - easy way to select recipients (and Activity participants)
  • Better error handling (probably with i18n support)