=============================== Quickstart: Creating a Project =============================== This is a short guide about how you can create a project in a PyBossa server. Readers may wish to start with the :doc:`Step by step tutorial on creating an Project ` which walks through creating a simple photo classification project if they want to understand all the details about how you create a project. First of all we have to create a project for the project. A project represents a set of tasks that have to be resolved by people, so a project will have the following items: #. **Name**, #. **Short name** or **slug**, and #. **Description** The **slug** or **short name** is a shortcut for accessing the project via the web (short urls like this http://domain.com/project/slug). The **description** is a short sentence that will be used to describe your project. A project can be created using two different methods: * :ref:`web-interface`, or * :ref:`api-interface`. .. _web-interface: Using the Web Interface ======================= Creating a project using the web interface involves four steps: 1. Create the project, 2. Import the tasks using the *simple built-in* :ref:`task-creator` (uploading a CSV file or Google Spreadsheet link exported as CSV), 3. Write the :ref:`task-presenter` for the users, and 4. Publish the project. Creating the project ~~~~~~~~~~~~~~~~~~~~ In order to create a project in PyBossa via the web interface you have to: 1. Sign in into your PyBossa server (or create an account) .. image:: http://i.imgur.com/WQuEVqL.png :alt: PyBossa sign in :width: 100% PyBossa supports Twitter, Facebook and Google sign in methods, or if you prefer you can create your account within the PyBossa server. Check the following figure: .. image:: http://i.imgur.com/g4mFENC.png :alt: PyBossa sign in methods 2. Click in **create** link of the top bar. 3. After clicking in the previous button, you will have to fill in a form with the very basic to create your project: #. **Name**: the full name of your project, i.e. Flickr Person Finder #. **Short Name**: the *slug* or short name used in the URL for accessing your project, i.e. *flickrperson*. #. **Long Description**: A *long* description where you can use Markdown to format the description of your project. This field is usually used to provide information about the project, the developer, the researcher group or institutions involved in the project, etc. .. image:: http://i.imgur.com/z3kWKcl.png :alt: PyBossa Create link .. note:: PyBossa usually provides two Categories by default: *thinking* and *sensing*. The *thinking* category represents the standard PyBossa project where users contribute helping with their skills. *Sensing* category refers to projects that are using a volunter sensing tool like EpiCollect for gathering data. 4. Once you have filled all the fields, click in the **Create the project** button, and you will have created your first project. After creating the project, you should be redirected to the **Settings** project page, where you will be able to customize your project by adding some extra information or changing some settings. There, you will find a form with the same fields as in the previous step (just in case you've changed your mind and wanted to change any of them) plus the following: * **Description**: A **short** description of the project, e.g. *Image pattern recognition*. By default, it will have been autogenerated for you from the **Long description** you filled in the previous step (but without the Markdown!). * **Allow Anonymous Contributors**: By default anonymous and authenticated users can participate in all the projects, however you can change it to only allow authenticated volunteers to participate. * **Password**: If you want to control who can contribute or access to your project, you can set a password here to share with those you allow to do it. If you leave it blank, then no password will protect your project! * **Category**: Select a category that fits your project. :ref:`categories` are added and managed by the server :ref:`administrators`. * In addition, you will be able to select and upload an **image** from your local computer to set it as the project image thoroughout the server. .. image:: http://i.imgur.com/DH8Qa8c.png :alt: PyBossa Project Update page .. _csv-import: Importing the tasks via the built-in CSV Task Creator ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Tasks can be imported from a CSV file or a Google Spreadsheet via the simple built-in :ref:`task-creator`. You have to do the following: 1. Navigate to your project's page (you can directly access it using the *slug* project name: http://server/project/slug). .. image:: http://i.imgur.com/98o4ixD.png 2. Click in the **Tasks** section -on the left side local navigation menu: .. image:: http://i.imgur.com/u5vusQR.png :width: 100% 3. And click again on the **Import Tasks** button. After clicking on it you will see several options. The first five are for using the different kinds of importers supported by PyBossa. .. image:: http://i.imgur.com/6OVoObZ.png The **CSV** importer, allows you to upload your own CSV file: .. image:: http://i.imgur.com/qoqIztQ.png Where you will have to provide a URL to a CSV file that you can have hosted in any free web hosting services like DropBox_. You will only need to copy the file to the **public** folder of the chosen service in your own computer (i.e. DropbBox Public folder) and then copy the public link created by the service. Put that link into the text box in the above picture and click on "import". Similarly, PyBossa also supports **Google Drive Spreadsheets**, so use this option if you have your data in Google Drive spreadsheet. .. note:: If you're trying to import from a Google Spreadsheet, ensure the file is accessible to everyone via the Share option, choosing: "Public on the web - Anyone on the Internet can find and view" .. note:: Your spreadsheet/CSV file must contain a header row. All the fields in the CSV will be serialized to JSON and stored in the **info** field. If your field name is one of **state**, **quorum**, **calibration**, **priority_0**, or **n_answers**, it will be saved in the respective columns. Your spreadsheet must be visible to public or everyone with URL. Finally, you will see that there are options for importing tasks from both an EpiCollect project or a Flickr photo set, which are fully described in the next two sections. The other four options pre-load a Google Docs URL of a public spreadsheet, that you can automatically import for your project (the URL will automatically copy and pasted into the input field for importing the tasks). .. image::http://i.imgur.com/5VrNFqs.png By using these templates, you'll be able to learn the structure of the tasks, and directly re-use the :ref:`task-presenter` templates that know the structure (name of the columns) for presenting the task. Additionally, you can re-use the templates by downloading the CSV files from Google Docs, or even copying them to your own Google Drive account (click in *File* -> *Make a copy* in the Google Doc Spreadsheet). The available templates are the following: * `Image Pattern Recognition`_ * `Sound Pattern Recognition`_ * `Video Pattern Recognition`_ * `Geo-coding`_ and * `PDF transcription`_. .. note:: If you import again the same URL, only new records will be added to the project. .. _`Image Pattern Recognition`: https://docs.google.com/spreadsheet/ccc?key=0AsNlt0WgPAHwdHFEN29mZUF0czJWMUhIejF6dWZXdkE&usp=sharing#gid=0 .. _`Sound Pattern Recognition`: https://docs.google.com/spreadsheet/ccc?key=0AsNlt0WgPAHwdEczcWduOXRUb1JUc1VGMmJtc2xXaXc#gid=0 .. _`Video Pattern Recognition`: https://docs.google.com/spreadsheet/ccc?key=0AsNlt0WgPAHwdGZ2UGhxSTJjQl9YNVhfUVhGRUdoRWc#gid=0 .. _`Geo-coding`: https://docs.google.com/spreadsheet/ccc?key=0AsNlt0WgPAHwdGZnbjdwcnhKRVNlN1dGXy0tTnNWWXc&usp=sharing .. _`PDF transcription`: https://docs.google.com/spreadsheet/ccc?key=0AsNlt0WgPAHwdEVVamc0R0hrcjlGdXRaUXlqRXlJMEE&usp=sharing .. _`DropBox`: http://www.dropbox.com .. _epicollect-import: Importing the tasks from an EpiCollect Plus Public Project ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ EpiCollect_ provides a web project for the generation of forms and freely hosted project websites (using Google's AppEngine) for many kinds of mobile data collection projects. Data can be collected using multiple mobile phones running either the Android Operating system or the iPhone (using the EpiCollect mobile app) and all data can be synchronised from the phones and viewed centrally (using Google Maps) via the Project website or directly on the phones. EpiCollect_ can help you to recollect data samples according to a form that could include multimedia like photos. Moreover, EpiCollect_ can geolocate the data sample as it supports the built-in GPS that all modern smartphones have. For example, you can create an EpiCollect_ project where the form will ask the user to take a picture of a lake, geo-locate it automatically via the smartphone built-in GPS and upload the picture to the EpiCollect_ server. If the user does not have Internet access at that moment, the user will be able to synchronize the data afterwards i.e. when the user has access to an Internet WIFI hotspot. PyBossa can automatically import data from a public EpiCollect_ Plus project that you own or that it is publicly available in the EpiCollect_ web site and help you to validate, analyze, etc. the data that have been obtained via EpiCollect. If you want to import the data points submitted to a **public** EpiCollect_ project, you will have to follow the next steps: 1. Navigate to your project's page (you can directly access it using the *slug* project name: http://server/project/slug). .. image:: http://i.imgur.com/98o4ixD.png 2. Click in the **Tasks** section -on the left side local navigation menu: .. image:: http://i.imgur.com/u5vusQR.png :width: 100% 3. And click on the **Import Tasks** button. After clicking on it you will see several different options. The first five correspond to the different importers PyBossa supports: .. image:: http://i.imgur.com/6OVoObZ.png 4. Click in the **Use an EpiCollect Project** one. 5. Then, type the **name of the EpiCollect project** and the name of the **form** that you want to import, and click in the import button .. image:: http://i.imgur.com/bCuTtl0.png All the data points should be imported now in your project. .. _`EpiCollect`: http://plus.epicollect.net .. note:: EpiCollect projects will be gathering data mostly all the time, for this reason, if you import again the same EpiCollect project, only **new data points** will be imported. This feature will allow you to easily add new data points to the PyBossa project without having to do anything special. .. _flickr-import: Importing the tasks from a Flickr photo set ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PyBossa also allows to import tasks for projects based on images (like image pattern recognition ones) directly from a Flickr_ `set `_ (also called album). When importing tasks from a Flickr set, a new task will be created for each of the photos in the specified set. The tasks will include the following data about each picture (which will be later available to be used in the task presenter): * title: the title of the photograph, as it appears on Flickr. * url: the url to the raw .jpg image, in its original size. * url_b: the url to the image, 'big sized. * url_m: the url to the image, 'medium' sized. * link: a link to the photo page in flickr (not to the raw image). You can import tasks from a Flickr photo set (a.k.a. album) in either of the following ways: The easiest one is to give the PyBossa server permission to access your Flickr list of albums. To do so, you'll have to log in to your Flickr account by clicking the "Log in Flickr" button. Then you'll be redirected to Flickr, where you will be asked if you want to allow PyBossa to access your Flickr information. If you say yes, then you'll be again redirected to PyBossa and you'll see all of your albums. Choose one of them and then click the "Import" button to get all the photos created as tasks for your project. .. note:: Next time you try to import photos using the Flickr importer, you'll see the albums for your account again. If you don't want PyBossa to access them anymore, or just want to use another Flickr account, then click "Revoke access". Another option to import from a Flickr album is by specifying the ID of the set (album) directly. This option is a bit more advanced (don't be afraid, it is still very easy if you follow the next steps) and it allows you to import from a photo set that you don't own (although, it will have to be public. Also check the rights of the photos on it!). Another advantage is that you don't need to log in to Flickr, sou you don't even need to have a Flickr account. These are the steps: 1. Navigate to your project's page and click in the **Tasks** section: .. image:: http://i.imgur.com/u5vusQR.png :width: 100% 2. Then click on the **Import Tasks** button, and select the **Flickr importer**: .. image:: http://i.imgur.com/6OVoObZ.png 3. Type the ID of the Flickr set you want to import the photos from, then click on the import button: .. image:: http://i.imgur.com/P2yU8qd.png :width: 100% If you cannot find the ID or don't know what it is, just browse to your Flickr photo set and check the URL. Can you see that last long number rigth at the end of it? That's what you're looking for! .. image:: http://i.imgur.com/h6qNDX2.png :width: 100% And all the photos will be imported to your project. Just like with the other importers, each task will be created only once, even if you import twice from the same Flickr set (unless you add new photos to it, of course!). .. note:: You will need to make sure that every photo belonging to the set has the visibility set to public, so the PyBossa server can then access and present them to the volunteers of your project. .. _`Flickr`: https://www.flickr.com/ Importing the tasks from a Dropbox account ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ You can import tasks from arbitrary data hosted on a Dropbox account with the Dropbox importer. When importer tasks like this, the following information will be added to the info field of each tasks, available later to be used in the task presenter of the project: * filename: just it, the name of the file you're importing as a task. * link: the link to the Dropbox page showing the file. * link_raw: the link to the raw file served by Dropbox. This is the one you'll have to use if you want to direct link to the file from the presenter (e.g. for using an image in a tag, you'd do: ). In addition to this generic information, the Dropbox importer will also recognize some kind of files by their extension and will attach some extra information to them. For pdf files (.pdf extension), the following field will be obtained too: * pdf_url: direct link to the raw pdf file, with CORS support. For image files (.png, jpg, .jpeg and .gif extensions) the following data will be available: * url_m: the same as link_raw * url_b: the same as link_raw * title: the same as filename For audio files (.mp4, .m4a, .mp3, .ogg, .oga, .webm and .wav extensions): * audio_url: raw link to the audio file, which can be used inside an HTML 5