This plugin manages volunteer networks. More specifically, the contributions of these volunteers have configured your campaigns here.
It lets you create "campaigns" in which you need to collect data from different people who want to contribute to your cause. For each campaign you can define a specific data model (using data types that we have implemented, such as geo, images, dictionaries, text, numbers, dates, ...) and can receive contributions of structured data.
The plugin exposes a RESTful API in yourdomain.tld/cindaAPI/ that can be consumed by any client. We have built one for Android (especially nice;-)), but if you want you can program another.
API Methods:
- GET /cindaAPI/server/info/
Returns general server data
- GET /cindaAPI/campaigns/list/
Campaigns list
- GET /cindaAPI/campaign/([0-9]+)/
Details of a campaign.
- GET /cindaAPI/campaign/([0-9]+)/model/
Data model of contributions to a campaign
- GET /cindaAPI/campaign/([0-9]+)/listData/
List of contributions to a campaign
- POST /cindaAPI/campaign/([0-9]+)/sendData/
Send/Save a contribution
- GET /cindaAPI/campaign/([0-9]+)/listVolunteers/
List Volunteers registered on the server
- GET /cindaAPI/topVolunteers/
Get the top contributors
- POST /cindaAPI/campaign/([0-9]+)/suscribe/
Subscription to a campaign
- POST /cindaAPI/campaign/([0-9]+)/unsuscribe/
Stop following a campaign
- POST /cindaAPI/volunteer/register/
Register/login of a user on the server. Returns a token required to call protected operations.
- POST /cindaAPI/volunteer/update-endpoint/
Updates the user device endpoint for push notifications
- GET /cindaAPI/volunteer/([0-9]+)/
Data of a volunteer
- GET /cindaAPI/volunteer/([0-9]+)/listData/
List of contributions for submitted by a volunteer
- GET /cindaAPI/volunteer/activate-login/
Activate account to operate in WebAPP, it send a mail with data instructions
- GET /cindaAPI/contribution/([0-9]+)/
Details of a contribution
- GET /cindaAPI/realtime/contributions/
A special operation, designed to be called from the companion App to send data to a wearable.
- GET /cindaAPI/realtime/nearby-activity/
Wearable related stuff, in progress...
- GET /cindaAPI/realtime/watchface/
Data to paint on the watch face of and Android Wear smartwatch
- GET /cindaAPI/dictionary/([0-9]+)/
Returns values for a special type of field available on the campaigns
- GET /cindaAPI/trackings/
Returns tracks of routes recorded for a user.
- GET /cindaAPI/tracking/([0-9]+)/
Details of a track
- POST /cindaAPI/tracking/send/
Send a track
- GET /cindaAPI/opendata/campaigns/
One way of show all the info about Campaigns to expose an Open Data platform
- GET /cindaAPI/opendata/contributions/
One way of show all the info about Contributions to expose an Open Data Platform
- before any POST you need to get a temporary token (nonce), here is the way you can get it:
- Register: /cindaAPI/nonce/volunteer_register/?token=[token]
- update endpoint: /cindaAPI/nonce/volunteer_update_endpoint/?token=[token]
- Subscribe: /cindaAPI/nonce/campaign_suscribe/?token=[token]
- Unsubscribe: /cindaAPI/nonce/campaign_unsuscribe/?token=[token]
- Send contribution: /cindaAPI/nonce/campaign_sendData/?token=[token]
- Send tracking: /cindaAPI/nonce/tracking_send/?token=[token]
The token especified is obtained on the (POST /cindaAPI/volunteer/register/) and before you must call /cindaAPI/nonce/volunteer_register, so you have to generate your own unique "first token" for this call (ex. = device UUID)
Almost the GET operations have a (optional) token. It is not compulsory, but necessary to consult own data.
Client
You can download and compile your own version of Android client
https://github.com/si2info/cinda-android
We are in process of writing some documentation, please be patient :)