PyBossa Overview¶
PyBossa is an open source platform that allows you to create web microtasking applications where volunteers could participate using their own web browsers.
PyBossa has two main components:
- the server and
- the applications.
Note
PyBossa provides a RESTful API that will give you access to some of the Domain Model objects.
The server¶
The PyBossa server is a Python web application that manages tasks for web applications delivering them to users using a simple RESTful API.
The Citizen Cyberscience Centre and the Open Knowledge Foundation provide the server CrowdCrafting.org so if you want, you can start directly using this service without any cost, or if you prefer Install your own PyBossa server yourself.
Architecture¶
The following diagram gives an overview of how a (Py)Bossa system functions:
PyBossa itself implements the section marked ‘Bossa Core’ and provides a platform on which Tasks can be created by Task Creators and from which Tasks can be accessed by Task Presenters (and on which certain types of Task Presenters can directly run). Full documentation of the API provided by PyBossa and which Task Creator and Task Presenters can use is to be found in RESTful API.
The Applications¶
A PyBossa application is an HTML page with some JavaScript that will load a task from a PyBossa server and present it to the volunteer and ask the user to, for instance, classify an image, transcribe a hand written document, etc.
A PyBossa application has two main components:
- A Task Presenter: an HTML document where the JavaScript will load the task data into the DOM (see Task Creator); and
- A Task Creator: usually a script that will upload the tasks for the application into the PyBossa server (see Task Presenter).
Applications can be easily created using two approaches:
- Using the Web interface: where you can create an application, write the Task Presenter and upload the tasks using the simplified built-in Task Creator (you can upload a CSV file or use a Google Docs Spreadsheet link exported as CSV); or
- Using the RESTful API: where you will be able to create the application, write the Task Presenter and Task Creator using your preferred text editor locally in your computer.
The Web Interface is a nice start point to learn a bit more about the PyBossa architecture and how you can develop a simple application in a really short time, while the RESTful API will give you more options in terms of flexibility at the cost of writing your own Task Creator.
Note
It is possible to create the application using the web interface, and then work locally in your computer developing the Task Presenter and Creator.
Task Creator¶
Task Creators are responsible for the creation of Tasks (and related entites – Apps, etc) in PyBossa. As such they will usually operate entirely outside of PyBossa itself interacting with PyBossa via the API.
The PyBossa project provides several PyBossa application templates that can be re-used for creating a new application really easily:
- Flickr Person Finder: an image classification template,
- Urban Parks: a geo-localizing using web-maps template,
- PDF Transcribe: a trancription template.
The template applications provide the:
- Task Creator: check in the repository the createTasks.py script,
- Task Presenter: check in the repository the template.html file,
- Tutorial: check in the repository the tutorial.html file,
- Application description: check in the repository the app.json and long_description.html files.
We recommend you to read the Application Tutorial as it gives a step by step guide about how you can create an application, write the Task Creator and Presenter from scratch using the Flickr Person Finder template application.
Task Presenter¶
Task presenters are responsible for presenting tasks to user in an appropriate user interface. For example, if a task involves classifying an image then a Task Presenter could be an html page into which the image has been inserted along with a form where the user can submit the response (the Task Presenter would also take care of submitting that response back to the PyBossa server via an API call).
Task Presenters can be written in any language and run anywhere as long as they can communicate with the PyBossa server via its API.
However, Task Presenters that wish to run as part of a PyBossa instance must be written in HTML and JavaScript. In addition, Task Presenters running on as part of a PyBossa instance will have available some additional information such as the id of the current logged in user performing the task.
The PyBossa framework provides several template applications that can be re-used to create your own application:
- Flickr Person Finder: an image classification template,
- Urban Parks: a geo-localizing using web-maps template,
- PDF Transcribe: a trancription template.
The template applications provide the:
- Task Creator: check in the repository the createTasks.py script,
- Task Presenter: check in the repository the template.html file,
- Tutorial: check in the repository the tutorial.html file,
- Application description: check in the repository the app.json and long_description.html files.
We recommend you to read the Application Tutorial as it gives a step by step guide about how you can create an application, write the Task Creator and Presenter from scratch using the Flickr Person Finder template application.
