Migration from AngularJS
Introduction
The Platform Client is built upon Angular JS 1.5.6, which is currently in Long Term Support ending in December 2021. Because of this, Ushahidi wants to move away from this version of Angular and into a more modern JavaScript framework and architecture. In March 2021, we started the journey which will be carried out incrementally until the last piece of AngularJS code is removed.
In order to do the migration, we will make use of Micro Frontend architecture and "single-spa", a framework for bringing together multiple JavaScript micro-frontends in a frontend application.
The goals of this project are:
Make the Ushahidi Platform more stable with fewer bugs
Make the Ushahidi Platform faster on slow networks
Stop depending on technologies that have been abandoned
Migrate away from AngularJS
Improve performance of the Platform Client
Modernise handling of styles
The plan
The first release, planned for October 2021
Migrated Page settings and meta-tags and general setup of single-spa
Restructured codebase, all views are divided into separate modules in the legacy app, which sets the foundation of the migration of the UI
Lazy loading separate views in the legacy-app
Updated documentation
Future releases:
Migrate parts of the UI
Modebar ← Release 2
Activity-view ←Release 3
Settings-view ← Release 4
Data and Map view ← Release 5
Decisions to be made:
Decide on a UI framework to Migrate TO
Decide on the handling of styles
What does this mean for contributors to the Platform Client?
You can keep contributing as before but be aware that the structure of the code has changed and will change more in the upcoming months. There will be a lot of moving parts. Also be prepared to start working in a new framework eventually, once that decision has been made.