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
  • First version - CLI only
  • Evaluating user interest
  • Tool requirements
  • Out of scope
  1. 🛣️ The Ushahidi Platform Roadmap

V2-V3+ Migration tool

V3+ refers to V3.x.x and later versions (ie V4.x.x)

Previous🛣️ The Ushahidi Platform RoadmapNextPrivacy and security best practices

First version - CLI only

The initial version of the migration tool will be a CLI. It will be a tool that can be used with some level of technical knowledge (ie: uploading a database dump).

Evaluating user interest

After launching the first version, which we are committed to doing already, we will gather level of interest, do more research, and then re-bet if there is an appetite for it and strong interest of deployments who actually try and use it.

We will be offering 10 courtesy migrations to Crowdmap SaaS or self-hosted deployments to enable us to understand the limitations of the tool with a wide array of datasets and to be able to gather how much real interest there is in migrating to V3+.

Tool requirements

  • Pre requisite: access to a v2/Crowdmap MySQL Dump that can be loaded into a local database that the migration tool will use.

  • Being able to migrate all deployment data for existing features.

  • Holding the data that was not migrated in the deployment

  • Logging the executed migrations with the intention of:

    • Knowing which migration was executed and when.

    • Being able to migrate old data from currently non-existing features when/if we add those old features back in V3+ in the future.

  • It should be easy to understand which data was migrated and which data was not (ie: tables/fields) from looking at either the migration logs table, or the output of the migration CLI.

  • It should not truncate data.

  • The migration matching logic should be documented.

    • It could available in the migration tool itself by running a command like migration info

      • This command would output a match table.

    • A matching table should be available in docs.ushahidi.com somewhere.

  • Import media

    • Notes: it may make sense to do a queue to import media.

  • Compatibility with usernames instead of emails - forcing users to change their username to an email when they first log in after the migration.

    • Note: check if the admin/admin thing that tells you to change your email to an email could be extended for ensuring users without emails switch to emails.

Out of scope

  • Implementing plugins functionality.

  • Implementing new functionality in V3+ to cover missing V2 features.

  • New Translations-backend work

  • New comments system

  • Claim system, Crowdmap ID

  • Old V2 versions. A deployment should be in the latest V2 to be migrated.

https://github.com/ushahidi/platform/issues/703