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
  • Workflow for Adding Code
  • 1. Get a github account
  • 2. Fork the repository
  • 3. Clone your fork to get the code to your computer
  • 4. Add your fork as a remote
  • 5. Find a feature to work on
  • 6. Start a branch for your feature
  • 7. Write Code
  • 8. Submit your code
  • 9. Further Reading
  1. Contributing | Getting Involved

Add code to Ushahidi

PreviousSpecific tasks needed for COVID19-supportNextEncouraging contribution from non-developers

Workflow for Adding Code

1. Get a github account

First, .

Ushahidi code development is happening in . We track all our tasks, both front-end and back-end, in issues connected to the repo .

2. Fork the repository

A fork is a copy of a repository. Forking a repository allows you to freely experiment with changes without affecting the original project.

The Ushahidi is built from 3 separate repositories. Depending on the task you'll need to one or more of these. Usually you'll need to fork at least the API and the Client repositories.

  • : This is the where the API for the platform is developed.

  • : This is where the JS client for the platform is developed.

  • : This is where the designs, HTML and CSS for the platform is developed.

To fork a repository:

  1. Click the link above

  2. In the top-right corner of the page, click Fork.

Thats all! Now you have your very own fork of the original repository.

3. Clone your fork to get the code to your computer

If you hadn't yet cloned (and installed) the platform code, you can just go ahead an clone your fork:

git clone git@github.com:yourusername/platform.git

4. Add your fork as a remote

If you already cloned and installed the platform, you can add your new fork as a "remote" repository:

git remote rename origin upstream
git remote add origin git@github.com:yourusername/platform.git

When you clone a repository, the URL you clone is always created as the "origin" remote repository. The commands above rename the "origin" to "upstream", and create a new "origin" that points to your fork. This will allow you to pull in new versions of the platform, but push your own branches to your fork.

5. Find a feature to work on

Ushahidi issues (bugs, feature requests, etc) are in Github Issues. Find something that needs doing.

  • Other tasks that we haven’t labeled yet may be suitable for work. Feel free to contact the team if you intend to work on something that grabs your attention.

6. Start a branch for your feature

If you’re working on a feature that nobody has claimed before, you will need to create a branch of Ushahidi that’s specific to this feature. To do this, cd (change directory) into your Ushahidi code in the terminal window, and type:

git checkout master
git pull
git checkout -b some-task

Where “some-task” is a short description without spaces of what this task is (e.g. “visualise-data”). Now you can start work on your code.

7. Write Code

8. Submit your code

When you’re ready to submit your code for approval, do this:

  1. Commit and push your code

    git add .
    git commit -m “message about this commit”
    git push origin some-task
  2. Click on "Compare and Pull Request" to create a pull request. Enter a title and description, then click "Create pull request".

     ![](https://github-images.s3.amazonaws.com/help/pull_requests/pullrequest-send.png)

In order to make it easy for someone to review your pull request, please write a checklist for how to test and evaluate your submission. You can read more about

The Ushahidi admins will then review and comment on your code, and will either accept your code or ask you to make changes to it. If you are asked to make changes to your code, make those changes then resubmit your code using:

git add .
git commit -m “message about this commit”
git push origin some-task

If your code is accepted, then the admin will merge your pull request. Your code will then appear in the Ushahidi Platform github repository, with you credited for it.

9. Further Reading

The best way to pick a feature to work on is to say hi to Ushahidi’s developers in our community-channels in gitter/irc, let them know what you’d like to work on (front end, back end, etc), and chat about what could be suitable for you. You can find more info on how to contact us .

in github are feature that are up for grabs by community devs.

Now write your code. Make sure you meet the and use the if you need to change the css.

If you get stuck, or want to talk through ideas, you can contact .

Then, open your fork on github, ie. "". You’ll see a banner indicating that you’ve recently pushed a new branch, and that you can submit this branch “upstream,” to the original repository:

The first time you submit code you may be asked to sign Ushahidi’s .

here
Community tasks
Ushahidi coding standards
Ushahidi pattern library
other Ushahidi developers
contributor agreement
Contributing to open source
Forking projects
create a github account
Github
Platform API
fork
Platform API
Platform Client
Platform Pattern Library
https://www.github.com/yourusername/platform