Platform Contributor Guide
[Legacy v3] Platform
[Legacy v3] Platform
  • 👋[Legacy v3] Welcome | README
  • Contributing | Getting Involved
    • Specific tasks needed for COVID19-support
    • Add code to Ushahidi
    • Encouraging contribution from non-developers
  • Frequently Asked Questions
  • Join the Ushahidi community
  • Contributors ✨
  • 🛣️ The Ushahidi Platform Roadmap
    • V2-V3+ Migration tool
  • Privacy and security best practices
    • Security as a user
    • Security for deployment admins
    • Security for deployment hosts
  • Development & Code
    • Development: Overview
    • How to get the source code
    • Setup Guides
      • Installing for production environments
      • Development environment with XAMPP
      • Development environment setup with Vagrant
      • [Client] Setting up the Platform Client for development
        • Migration from AngularJS
      • Setting up the Pattern Library for development
      • [API & Client] Bundled release install
    • Add code to Ushahidi
    • Development process
    • Coding Standards
    • Track and submit issues in Github
    • Upgrading Ushahidi
      • Upgrading to latest release
      • Upgrading from V3.x.x to V4.x.x
    • ⚙️ Installation Helper‌
  • Tech Stack
    • API Documentation
    • Third party app development
      • Web hooks
    • Database | Tables overview
    • Database | Database Schema Diagram
    • Database | Table details
    • 📐Architecture
    • Use case internals
  • QA & Testing
    • The QA process
    • How to run QA tests
    • Defect Management
    • How to write QA test scripts
    • Hotfixes
  • Front-end development
    • Changing UI styles: introduction to the pattern library
      • File-structure
      • Installing new packages
      • How to Apply to the Platform
      • Using the changed styles in platform-client
      • Syntax and Formatting
      • Grid, Breakpoints, & Media Queries
      • Variables
      • Mixins
      • Helpers
      • Icons
      • Create a New Component from Scratch
      • Read Direction
  • Design
    • 🎨Design: overview
    • 'Best practice' design
    • Ushahidi Platform 'Sticker Sheet'
    • User testing process
    • User testing script examples
    • Synthesising user testing results examples
      • Synthesis example 1
      • Synthesis example 2
      • Synthesis example 3
      • Synthesis recommendations example 1
      • Synthesis recommendations example 2
    • Open Source Design
  • Documentation
    • Documentation
    • Contributing docs via GitHub
  • Translation
    • Localization and Translation
  • The Ushahidi Platform Facebook bot
    • The Facebook bot
      • Installing the bot
      • The bot script
  • Hackathon and events
    • Installathon, May 2019
      • Welcome to the hackathon!
    • Write/Speak/Code 2019
    • Open Design: Bangalore
    • Open Design: Taipei
    • 📑Google season of docs
    • 💻Google Summer of Code
      • GSoC 2024
  • Enhancement Proposals
    • Exchange Format
    • Importing data from previous versions
Powered by GitBook
On this page
  1. Development & Code
  2. Setup Guides
  3. [Client] Setting up the Platform Client for development

Migration from AngularJS

Previous[Client] Setting up the Platform Client for developmentNextSetting up the Pattern Library for development

Introduction

The Platform Client is built upon Angular JS 1.5.6, which is currently in 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.

Long Term Support