## History
Our goal is to collect information about Open Source Communities and Hackspaces all over Asia. This information will be used to aggregate contact data, locations, news feeds and events. We adopted this API from the Hackerspaces and Freifunk API, invented years before to collect decentralized data.
At the Wireless Community Weekend 2013 in Berlin there was a first meeting to relaunch freifunk.net. To represent local communities without collecting and storing data centrally, a way had to be found. Another requirement was to enable local communities to keep their data up to date easily.
Based on the Hackerspaces API (http://hackerspaces.nl/spaceapi/) the idea of the freifunk API was born: Each community provides its data in a well defined format, hosted on their places (web space, wiki, web servers) and contributes a link to the directory. This directory only consists of the name and an url per community. First services supported by our freifunk API are the global community map and a community feed aggregator.
The freifunk API is designed to collect metadata of communities in a decentral way and make it available to other users. It's not designated to be a freifunk node database or a directory of individual community firmware settings.
## Structure
FOSSASIA API breaks down to several projects, each with its dedicated task :
-
API-compliant json file generator, and API specification.
-
directory storing the list of our registered communities. This is where you should look at if you want to add yours.
-
set of tools to collect and aggregate the API files, and the Calendar API.
-
community rss blog feeds merger.
-
interactive FOSSASIA community map.
-
events timeline of registered communities.
## How it works
The "back-end" of FOSSASIA API project is a set communities json files, each containing some general meta-information about a community : name, location, contact, blog/forum/calendar feeds.. Just enough to build interesting projects and statistics. API files must follow a well-defined format, and to make things easier, there's a web-based file generator to help creating / modifying them. Format specification and API file generator are situated at the current api repo.
From the list of individual communities files urls, we retrieve API json files and cache them in aggregated files : ffSummarizedDir.json
, ffGeoJson.json
, ffMerged.ics
,using the common aggregator & ics merger in common repo. Other API projects & external services can retrieve API "back-end" data from these files. These aggregator are set up as cron tasks to periodically retrieve fresh data.
The API is designed to make communities metadata available to everyone. There are several public webservice endpoints that users can access : Calendar API in common repo, merged feed rss in feed repo. These services require the aggregated json file ffGeoJson.json
.
Finally, there are several visual components : the common map situated at cmap repo, that could be embed as iframe in any website. The map also requires ffGeoJson.json
. And the community timeline in timeline repo, which gets its data from Calendar API, and is bundled as a jQuery plugin
## Setup
The API projects are designed to be independant components. Only harmless urls hold them together, which can, in most of the case, be modified in project's configuration file. Please clone any repo as per your needs and refer to its README file for more information.
For detailed setup instructions of the api file generator, visit here
The most meaningful way to contribute to FOSSASIA API project is to help us reach out to more people and more communities, in ASIA and the world. You can find out how to add new open-source community to our API here.
We equally appreciate development contributions to help build an useful & meaningful project. Feel free to open issues, send us pull requests, and chat with the development team.
- Calendar Icon: Creative Commons Attribution-Share Alike 3.0 Unported license: Font Awesome by Dave Gandy - http://fortawesome.github.com/Font-Awesome