ARBML/masader

Banner and page highlighting updates

zaidalyafeai opened this issue · 8 comments

We want to create a page to highlight what were the main updates in this version.

#68 covers the page highlighting updates, however, it will be nice to have a notification window when a new release has been published on the website and the user isn't aware of it. This will require storing some information about the latest release that the user has seen and then displaying the release notes as a modal or a toast.

This might require some new endpoint that reads CHANGELOG.md and does some pre-processing to be fed to the front-end side for the latest release information, or even an end-point for fetching releases based on the release number. @AliOsm thoughts?

@sudomaze I don't think that processing the changelog is a good starting point, as you know, the message could be free text other than structured data points. I prefer to do simple endpoint that returns a message stored in the env vars of the service, until we decide what is the service's next step. What do you think?

The changelog has somewhat structured data.

## [version_num] - YYYY-MM-DD

### Added
- TEXT
- TEXT
- ...

### Changed
- TEXT
- TEXT
- ...

### Fixed
- TEXT
- TEXT
- ...

### Removed
- TEXT
- TEXT
- ...

A simple pre-processing function in the backend will turn the above changelog to this json:

[
	{
	      "version_num": "v1.0.0",
		  "date":   "YYYY-MM-DD",
		  "added": ["TEXT", "TEXT", "..."],
		  "changed": ["TEXT", "TEXT", "..."],
		  "fixed": ["TEXT", "TEXT", "..."],
		  "removed": ["TEXT", "TEXT", "..."],
	},
]

We can add a GitHub Action to ensure that the CHANGELOG.md is in the correct format before merging to main.

I know, what I mean is that the highlight message could be free text instead of this structured data. So allowing humans to write it is better.

I was thinking of having a modal to pop-up this if the user didn't see the update before with something like this:

But if you think a simple highlight message would be enough, I can see it as a cleaner setup and we can say read more which will take them to the changelog page. I like your idea better.

Cool, I will implement the required endpoint and update you soon.

This will be moved to after the release.