Ushahidi is an open source web application for information collection, visualization and interactive mapping. It helps you to collect info from: SMS, Twitter, RSS feeds, Email. It helps you to process that information, categorize it, geo-locate it and publish it on a map.
If you are starting a deployment for a grassroots organization, you can apply for a free social-impact responder account here after verifying that you meet the criteria.
There are many ways to get involved with Ushahidi, and some of them are great even for first time contributors. If you never contributed to Open Source Software before, or need more guidance doing it, please jump in our gitter channel with a clear description of what you are trying to do, and someone in there will try to help you. These are some ways to get involved:
Getting the API code
git clone https://github.com/ushahidi/platform.gitthis will create a directory named platform .
git checkout develop)
Once you have the code, the next step is to prepare a web server. We will use vagrant, with the Vagrant and Homestead.yml files that ship with Ushahidi.
First up we need to install the PHP dependencies
composer install --ignore-platform-reqs.
Note: Without using --ignore-platform-reqs you might run into an error like "The requested PHP extension ... is missing from your system". You generally won't need all the PHP extensions on your host machine, since the vagrant setup already has them.
If you get a warning like "In MemcachedConnector.php line 69: Class 'Memcached' not found" at this point you can safely ignore it, we will come back to it later.
Bring up the vagrant server. Since this is the first time you run it, it will also provision the machine from scratch:
Our vagrant box is built on top of Laravel's Homestead, a pre-packaged Vagrant box that provides a pre-built development environment. Homestead includes the Nginx web server, PHP 7.1, MySQL, Postgres, Redis, Memcached, Node, and all of the other goodies you might need.
If you see an error like "Vagrant was unable to mount VirtualBox shared folders...", try upgrading VirtualBox or edit Homestead.yaml and change the folders to NFS as shown below, then re-run "vagrant" up.
- map: "./" to: /vagrant type: "nfs" - map: "./" to: /home/vagrant/Code/platform-api type: "nfs"
sudo update-alternatives --set php /usr/bin/php7.1
192.168.33.110 platform-api 192.168.33.110 api.ushahidi.test
At this point you should have a running web server, but your deployment isn't set up yet. We still need to configure the database and run the migrations.
Copy the configuration file
.env.example to make sure the platform can connect to the database.
cp .env.example .env
Run the migrations. This is required to be able to use your deployment, since it includes basic data such as an initial "admin" user, roles, the database schema itself, etc.
Go to http://192.168.33.110 in your browser to check the API is up and running. You should see some JSON with an API version, endpoints and user info.
Follow the instructions here