All our issues live in https://github.com/ushahidi/platform/issues .
You need to deploy the Platform API first
The web client is the component that end users interact with when opening the Platform website with a web browser. The client interacts with the API in order to perform operations on the system (i.e. submit posts, query posts).
Pre-requisite: Install the platform API by following one of the API setup guides
Pre-requisite: Install Node V6.x (you might want to use NVM for this) before continuing.
Clone the repository (this will create a directory named platform-client)
git clone https://github.com/ushahidi/platform-client.git
Go into the platform directory
cd platform-client
Switch to the develop branch
git checkout develop
If you haven't used git before or need help with git specific issues, make sure to check out their docs here https://git-scm.com/doc
npm install
The client needs to point to the hostname where the backend expects to receive HTTP requests. This has to be set before building the client.
In order to set up all that, create a file at the location /var/www/platform-client/.env . Use the following contents as an example:
BACKEND_URL=https://192.168.33.110/
PORT=8000
APP_LANGUAGES=en
OAUTH_CLIENT_ID=ushahidiui
OAUTH_CLIENT_SECRET=35e7f0bca957836d05ca0492211b0ac707671261
To make it easy to call `gulp` when building and developing in the app, add node_modules/.bin to your PATH in ~/.bashrc. Example PATH (relevant part in bold):
export PATH=$HOME/bin:/usr/local/bin:node_modules/.bin:$PATH
gulp
alternatively, if you haven't setup node_modules in your PATH, run:
Run:
node_modules/gulp/bin/gulp.js
This will start the watcher for local development, and any changes you make to the code will be reflected in the application.
Run:
gulp build
alternatively, if you haven't setup node_modules in your PATH, run:
node_modules/gulp/bin/gulp.js build
This will start the process of generating the static site. Once the files are generated, you can host the server/www directory and load the site.
In the server directory you will also find an example nginx and an example apache2 file to get you started on hosting the client.
To run unit tests once, run:
gulp test
For test driven development we have a gulp task gulp tdd
. This watches for JS changes and re-runs the unit tests.
If you are running the client with a native web server like Apache or nginx, you will need to use URL rewriting to point all non-existant files to index.html
. There is a sample .htaccess
file, which can be used with Apache:
% cp server/rewrite.htaccess server/www/.htaccess
Nginx users will have to manually configure rewriting in the site configuration file.
Yes! Development moves pretty quickly but the tech stack is getting more and more stable. If you're keen to help build something awesome, jump on board.