CINDA: Volunteers Networks
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 🙂
More info
You can visit http://www.cinda.science/ for more information about this free citizen science project designed and promoted by http://iecolab.es and developed by http://si2.info
