2023 CW 43 - Development Progress

2023 CW 43 - Development Progress

Sorry for the radio silence. I have made some progress in the last weeks, but some personal issues caused a bit of chaos in my life, eliminating my precious focus time on Fridays, when I usually write the summary of the week.

So let's jump into the results of the past 3 weeks.

Release

I created the required video for Google's verification process. Then I had to redo some parts of it. The video is far from the desired quality, but my focus is currently not on marketing but getting the first integrations ready.

The webpage now contains direct download links and to the apps. These links automatically updated when a new release is created. Currently, there is no fully automated way of doing releases, and I'm still thinking how it should be implemented. Until that, it will remain a semi-manual process.

Testing

The testing efforts are continued. I have reach out a couple of people to start testing the app, but it was not enough. Next week I have to start reaching out to the wider audience to gather some early users. In the meantime, I have discovered and fixed a bunch of issues.

In the last weeks, I have also managed to get unit tests (Jest) working (finally!). It was a real struggle, and (unfortunately) I still don't fully understand what was causing the issue. Some of the babel versions are misbehaving in certain conditions, but recreating the case requires a lot of effort. Anyway, the issue is resolved now, and the tests are working. I'm going to look into end-to-end tests as well. I want to have some very basic, Happy Path tests, in order to avoid releasing not working versions - as it unfortunately happened already.

New integrations

RSS

I have created a very simple RSS integration. The RSS integration can pull information from RSS urls. It can also pull the actual content (article) behind the RSS item. This allows reading the information straight in Contexty.

GitHub

I'm currently working on the GitHub integrations. I have checked the technical feasibility, created some prototypes, tested their APIs (REST & GraphQL). The main goal for next week to have a very early working version of the GitHub Plugin. It will sync only Issues into Contexty.

In order to deliver the GitHub Plugin, I have to rework the Composer. It's not going to be Composer in the future, but I'm going to transform it into a Graphical Command Prompt. The Command Prompt would have Commands to actually compose and e-mail, a WhatsApp message, a GitHub comment, etc. But it would also allow to create Command for actions like: Create an Issue, Merge Pull Request, etc.

WhatsApp Plugin

I have worked a little bit on the WhatsApp Plugin as well. It can now support Edited Messages as well as Deleted Messages.

Documentation

I have been writing ADRs (Architecture Decision Records) for myself since I'm working on this project. But those documents were not part of the project and were not fully worked out. Those were rather just notes for myself. I have decided to move them into the project as I believe those contain some very interesting information about the design decisions I've made so far. I have also decided that I'm gonna write more and elaborate them better in the future.

Work for next week

  • GitHub Plugin
    • Sync Issues
    • ❓Sync Comments
    • ❓Create Issue
  • Communities
    • Create a community for Contexty
    • Find communities that would be interested in Contexty
  • Platform Improvements
    • Command Prompt - Decouple Plugins and Composer. A Plugin should be able to decide whether to display Composer or not. Later the Plugin should be able to decide to display anything in the Command Prompt even if it's not a Composer.

🎒 Backlog

🏗️ Platform

  • UI Improvements:
    • Apply Contexty colours on the app
    • Add Contexty icon
    • Create easy to access menus (always visible icons)
    • View media in big
    • Vertical Main menu instead of horizontal.
    • Make Resource sidebar disappear and only show by clicking a menu item.
  • Favourite menu items and filter based on them
  • Filtering
    • Filter items based by Label
    • Refactor filtering so moving all items meeting the filter criteria can be implemented.
  • Display Participants of the Activity
  • Add the content of the original message as quoted text to the composer.
  • 👾 i18n support
  • 🪲 Switching Activity should scroll to the end (or first unread(?))
  • Keyboard shortcuts
  • Platform: React to History items (with WhatsApp integration)
  • Platform: Merge Activities
  • Platform: Get notification from the item you are in.
  • And tracking to the app - MixPanel ? Google Analytics ?

⌨️ Composer

  • Navigating by keyboard - e.g. it's very annoying that the tab button jump on the formatting options instead of the message body.
  • 🪲 Recipients are cached per integration, even though integration is not a mandatory field. This needs to be fixed.
  • No attachment and images in the sent message. Something that is not supported by the system yet.

🗨️ WhatsApp

  • Reply functionality is not working - I need to store the whole message to make it happen.
  • In general, there is no Chat creation at all.
  • Read by others - this is an information that is not supported by the system.
  • React to message - there is no support in the system to react to a history item.
  • 🪲 WhatsApp Plugin: Status broadcast is coming in as normal message

✉️ Gmail Plugin

  • Contacts
    • Sync Google contacts into Contexty
  • Support for Mailing Lists - create Subactivity per mailing list

🚀 Release

  • 🚧 Change webpack configuration to avoid problems with typeorm migrations.