diff --git a/doc/admin.rst b/doc/admin.rst
index 24b8ee3824..b20cae6cee 100644
--- a/doc/admin.rst
+++ b/doc/admin.rst
@@ -35,7 +35,7 @@ Administrators can manage three different areas of the server:
monitor all the background jobs and even cancel them or retry failed ones.
.. _`RQ dashboard`: https://github.com/nvie/rq-dashboard
-.. _featured-apps:
+.. _featured-projects:
Featured Projects
=================
diff --git a/doc/api.rst b/doc/api.rst
index f58ffd376b..fdf0f0ad57 100644
--- a/doc/api.rst
+++ b/doc/api.rst
@@ -16,6 +16,9 @@ It expects and returns JSON.
.. autoclass:: pybossa.api.AppAPI
:members:
+.. autoclass:: pybossa.api.ProjectAPI
+ :members:
+
.. autoclass:: pybossa.api.TaskAPI
:members:
@@ -50,14 +53,14 @@ get something like this:
"info": 65,
"user_id": null,
"links": [
- "",
+ "",
""
],
"task_id": 5894,
"created": "2012-07-07T17:23:45.714184",
"finish_time": "2012-07-07T17:23:45.714210",
"calibration": null,
- "app_id": 90,
+ "project_id": 90,
"user_ip": "X.X.X.X",
"link": "",
"timeout": null,
@@ -66,14 +69,14 @@ get something like this:
The object link will have a tag **rel** equal to **self**, while the parent
objects will be tagged with **parent**. The **title** field is used to specify
-the type of the object: task, taskrun or app.
+the type of the object: task, taskrun or project.
-Apps will not have a **links** field, because these objects do not have
+Projects will not have a **links** field, because these objects do not have
parents.
-Tasks will have only one parent: the associated project (application).
+Tasks will have only one parent: the associated project.
-Task Runs will have only two parents: the associated task and associated app.
+Task Runs will have only two parents: the associated task and associated project.
.. _`Hypermedia as the Engine of Application State`: http://en.wikipedia.org/wiki/HATEOAS
@@ -102,15 +105,13 @@ PyBossa, as it is really simple to check those values:
import requests
import time
- res = requests.get('http://SERVER/api/app')
+ res = requests.get('http://SERVER/api/project')
if int(res.headers['X-RateLimit-Remaining']) < 10:
time.sleep(300) # Sleep for 5 minutes
else:
pass # Do your stuff
-
-
Operations
----------
@@ -123,9 +124,9 @@ List domain objects::
GET http://{pybossa-site-url}/api/{domain-object}
-For example, you can get a list of registered projects (applications) like this::
+For example, you can get a list of registered Projects like this::
- GET http://{pybossa-site-url}/api/app
+ GET http://{pybossa-site-url}/api/project
Or a list of Tasks::
@@ -177,7 +178,7 @@ If the object is not found you will get a JSON object like this:
{
"status": "failed",
"action": "GET",
- "target": "app",
+ "target": "project",
"exception_msg": "404 Not Found",
"status_code": 404,
"exception_cls": "NotFound"
@@ -229,7 +230,7 @@ If an error occurs, the action will return a JSON object like this:
{
"status": "failed",
"action": "POST",
- "target": "app",
+ "target": "project",
"exception_msg": "type object 'Project' has no attribute 'short_ame'",
"status_code": 415,
"exception_cls": "AttributeError"
@@ -255,7 +256,7 @@ If an error occurs, the action will return a JSON object like this:
{
"status": "failed",
"action": "PUT",
- "target": "app",
+ "target": "project",
"exception_msg": "type object 'Project' has no attribute 'short_ame'",
"status_code": 415,
"exception_cls": "AttributeError"
@@ -281,7 +282,7 @@ If an error occurs, the action will return a JSON object like this:
{
"status": "failed",
"action": "DELETE",
- "target": "app",
+ "target": "project",
"exception_msg": "type object 'Project' has no attribute 'short_ame'",
"status_code": 415,
"exception_cls": "AttributeError"
@@ -296,7 +297,7 @@ Requesting a new task for current user
You can request a new task for the current user (anonymous or authenticated)
by::
- GET http://{pybossa-site-url}/api/{app.id}/newtask
+ GET http://{pybossa-site-url}/api/{project.id}/newtask
This will return a domain Task object in JSON format if there is a task
available for the user, otherwise it will return **None**.
@@ -327,6 +328,6 @@ Where 'provider' will be any of the third parties supported, i.e. 'twitter',
Example Usage
-------------
-Create a Project (Application) object::
+Create a Project object::
- curl -X POST -H "Content-Type:application/json" -s -d '{"name":"myapp", "info":{"xyz":1}}' 'http://localhost:5000/api/app?api_key=API-KEY'
+ curl -X POST -H "Content-Type:application/json" -s -d '{"name":"myproject", "info":{"xyz":1}}' 'http://localhost:5000/api/project?api_key=API-KEY'
diff --git a/doc/build_with_pybossa.rst b/doc/build_with_pybossa.rst
index 614426b630..3517bcd0a7 100644
--- a/doc/build_with_pybossa.rst
+++ b/doc/build_with_pybossa.rst
@@ -15,6 +15,6 @@ understand how things fit together.
user/overview
user/pbs
user/tutorial
- user/app_settings
+ user/project_settings
api
model
diff --git a/doc/customizing.rst b/doc/customizing.rst
index ffd82e9c2e..e3968ae060 100644
--- a/doc/customizing.rst
+++ b/doc/customizing.rst
@@ -156,9 +156,9 @@ As you can see, you will be able to give a full personality to your own PyBossa
server without problems.
.. note::
- You can specify a different amount of apps per page if you want. Change the
- default value in your settings_local.py file of APPS_PER_PAGE to the number
- that you want. By default it gives you access to 20.
+ You can specify a different amount of projects per page if you want. Change
+ the default value in your settings_local.py file of APPS_PER_PAGE to the
+ number that you want. By default it gives you access to 20.
.. _`repository pybossa-default-theme`: https://github.com/PyBossa/pybossa-default-theme
@@ -354,7 +354,7 @@ settings_local.py file, you can adapt it to your own needs.
Configuring upload method
=========================
-PyBossa by default allows you to upload avatars for users, icons for apps, etc.
+PyBossa by default allows you to upload avatars for users, icons for projects, etc.
using the local file system of your server. While this is nice for small
setups, when you need to add more nodes to serve the same content, this feature
could become a problem. For this reason, PyBossa also supports cloud solutions
@@ -547,7 +547,7 @@ only administrators will be able to see the following pages:
* http://server/stats
* http://server/account/
* http://server/account/user/
- * http://server/app/stats
+ * http://server/project/stats
Anonymous and authenticated will see a warning message like this:
@@ -595,7 +595,7 @@ you want::
PRESENTERS = ["basic", "image", "sound", "video", "map", "pdf", "yourtemplate"]
**Yourtemplate** should be a template that you have to save in the theme
-folder: **/templates/applications/snippets/** with the same name. Check the
+folder: **/templates/projects/snippets/** with the same name. Check the
other templates to use them as a base layer for your template.
After adding the template, the server will start offering this new template to
diff --git a/doc/faq.rst b/doc/faq.rst
index 546243f921..1545692af6 100644
--- a/doc/faq.rst
+++ b/doc/faq.rst
@@ -27,7 +27,7 @@ sections.
Can I disable anonymous contributions?
--------------------------------------
Yes, you can. Check your project settings and toggle the drop down menu:
-*Allow Anonymous Contributors* from Yes to No. Check the :ref:`app-details`
+*Allow Anonymous Contributors* from Yes to No. Check the :ref:`project-details`
for further information.
Can I create *golden tasks*?
@@ -45,7 +45,7 @@ Can I delete my project and all the task and task runs?
-----------------------------------------------------------
Yes, you can. If you are the owner of the project you can delete the
project, and automatically all the task and associated task runs will be
-deleted (**note**: this cannot be undone!). Check the :ref:`app-delete` section
+deleted (**note**: this cannot be undone!). Check the :ref:`project-delete` section
for further details.
Do you provide any statistics about the users for my project?
@@ -56,7 +56,7 @@ will take to complete all your tasks, the top 5 authenticated and anonymous
users, etc. Check the *Statistics* link in the left local sidebar of your
project.
-My project is not getting too much attention, how can it be a *featured* app?
+My project is not getting too much attention, how can it be a *featured* project?
---------------------------------------------------------------------------------
Featured projects are managed by the administrators of the site. Contact
them about this issue, and they will decide about your project.
@@ -68,7 +68,7 @@ your file to a file server like DropBox, copy the public link and paste it in
the importer section. PyBossa also supports Google Drive Spreadsheets, see
:ref:`csv-import` section for further details.
-My data is in a Google Doc Spreadsheet, can I import the data into my app?
+My data is in a Google Doc Spreadsheet, can I import the data into my project?
--------------------------------------------------------------------------
Yes, you can. PyBossa supports the Google Drive Spreadsheets, so make it
public, copy the link and use that link to import it the Google Drive importer
@@ -110,11 +110,11 @@ version 3.0`_.
.. _`GNU Affero general public license version 3.0`: http://www.gnu.org/licenses/agpl-3.0.html
-Do you provide project templates or examples apps?
+Do you provide project templates or examples projects?
------------------------------------------------------
Yes, we do. You can find several open source project examples that can be
re-used for image/sound pattern recognition problems, geo-coding, PDF transcription,
-etc. Check the official `Git repository`_ for all the available apps.
+etc. Check the official `Git repository`_ for all the available projects.
.. _`Git repository`: http://github.com/PyBossa/
diff --git a/doc/index.rst b/doc/index.rst
index 0a1ae425c0..a449140634 100644
--- a/doc/index.rst
+++ b/doc/index.rst
@@ -59,7 +59,7 @@ Useful Links
* Mailing list: http://lists.okfn.org/mailman/listinfo/okfn-labs
* Source code: https://github.com/PyBossa/pybossa
-* Template apps: https://github.com/PyBossa
+* Template projects: https://github.com/PyBossa
==================
Indices and tables
diff --git a/doc/install.rst b/doc/install.rst
index 3871b75c36..ecab81b050 100644
--- a/doc/install.rst
+++ b/doc/install.rst
@@ -392,17 +392,17 @@ Migrating Your Old DB Records
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In versions prior to v0.2.3, HTML was supported as the default option for the
-'long_description' field in apps. In new versions of PyBossa, Markdown has been
+'long_description' field in projects. In new versions of PyBossa, Markdown has been
adopted as the default option. However, you can use HTML instead of Markdown
by modifying the default PyBossa theme or using your own forked from the default
one.
-If you were have been using PyBossa for a while you may have apps in your
+If you were have been using PyBossa for a while you may have projects in your
database whose 'long_description' is in HTML format. Hence, if you are using the
default theme for PyBossa you will no longer see them rendered as HTML and may
have some issues.
-In order to avoid this, you can run a simple script to convert all the DB app's
+In order to avoid this, you can run a simple script to convert all the DB project's
'long_description' field from HTML to Markdown, just by running the following
commands::
diff --git a/doc/user/advance.rst b/doc/user/advance.rst
index f3171a63e0..8a208ef2b5 100644
--- a/doc/user/advance.rst
+++ b/doc/user/advance.rst
@@ -14,7 +14,7 @@ a specific Task for a given project.
The following URL is available for every project::
- http://pybossa.com/app/slug/task/id
+ http://pybossa.com/project/slug/task/id
The new endpoint is the same one as the **presenter** one, so the template.html
should take care of using this new endpoint using some JavaScript.
@@ -24,7 +24,7 @@ DEPRECATED: New Work Flow
This new endpoint opens the possibility to use the following work flow:
-* Users will load the following page http://pybossa.com/app/newtask
+* Users will load the following page http://pybossa.com/project/newtask
* The template.html JavaScript should check if the window.location.pathname has the following sub-string: task
* If the answer is Yes, then, it should load using an AJAX call the information for the given task
* Else, the pybossa.newTask() method should be used to obtain a task for the user, and change the window.location.href to the new endpoint:
@@ -55,7 +55,7 @@ load a specific task, or request a new one for the user using PyBossa.JS::
pybossa.newTask("flickrperson").done( function( data ) {
if ( !$.isEmptyObject(data.task) ) {
- window.location.pathname = "/app/flickrperson/task/" + data.task.id;
+ window.location.pathname = "/project/flickrperson/task/" + data.task.id;
}
else {
$(".skeleton").hide();
@@ -122,7 +122,7 @@ from the same page, however we have to do it in a different way.
Once the answer has been saved, the submitTask(answer) function should change
the pathname again for requesting a new task::
- window.location.pathname = "/app/flickrperson/newtask"
+ window.location.pathname = "/project/flickrperson/newtask"
This will trigger the right methods described in the beginning of this section,
checking if the URL has the **task** keyword in the pathname, and acting
diff --git a/doc/user/overview.rst b/doc/user/overview.rst
index 58cc6a9e02..41944bc600 100644
--- a/doc/user/overview.rst
+++ b/doc/user/overview.rst
@@ -17,7 +17,7 @@ will have the following items:
#. **Description**
The **slug** or **short name** is a shortcut for accessing the project via
-the web (short urls like this http://domain.com/app/slug).
+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.
@@ -123,7 +123,7 @@ 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/app/slug).
+ the *slug* project name: http://server/project/slug).
.. image:: http://i.imgur.com/98o4ixD.png
@@ -236,7 +236,7 @@ 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/app/slug).
+ the *slug* project name: http://server/project/slug).
.. image:: http://i.imgur.com/98o4ixD.png
@@ -428,7 +428,7 @@ tasks and associated task runs** from your project.
delete all the tasks.**
If you are sure that you want to flush all the tasks and task runs for your
-project, go to the project page (http://server/app/slug/tasks/) and click in
+project, go to the project page (http://server/project/slug/tasks/) and click in
the **Settings** option of the left local navigation menu:
.. image:: http://i.imgur.com/XsAOjnb.png
@@ -461,7 +461,7 @@ to access your project URL to work with your project. If your project
*slug* or *short name* is *flickrperson* you will be able to access the
project managing options in this URL::
- http://PYBOSSA-SERVER/app/flickrperson
+ http://PYBOSSA-SERVER/project/flickrperson
.. note::
@@ -531,7 +531,7 @@ Creating a project using the API involves also three steps:
Creating the project
~~~~~~~~~~~~~~~~~~~~~~~~
-You can create a project via the API URL **/api/app** with a POST request (See
+You can create a project via the API URL **/api/project** with a POST request (See
:ref:`api`).
You have to provide the following information about the project and convert
@@ -580,7 +580,7 @@ that should have the link to the photo that we want to identify:
info = dict (link=photo['link'],
url=photo['url_m'],
question='Do you see a human face in this photo?')
- data = dict (app_id=app_id,
+ data = dict (project_id=project_id,
state=0,
info=info,
calibration=0,
@@ -655,7 +655,7 @@ with your own editor, or using the PyBossa interface (see previous section).
This API-KEY should be passed as a POST argument like this with the
previous data:
- [POST] http://domain/api/app/?api_key=API-KEY
+ [POST] http://domain/api/project/?api_key=API-KEY
We recommend to read the
:doc:`Step by step tutorial on
diff --git a/doc/user/app_settings.rst b/doc/user/project_settings.rst
similarity index 97%
rename from doc/user/app_settings.rst
rename to doc/user/project_settings.rst
index bf0bbd7141..fc2d6f15bb 100644
--- a/doc/user/app_settings.rst
+++ b/doc/user/project_settings.rst
@@ -12,7 +12,7 @@ name **Settings**.
The **Settings** page will give you three basic options:
-#. :ref:`app-details`: here you will be able to change the name
+#. :ref:`project-details`: here you will be able to change the name
of the project, the description, icon, etc.
#. :ref:`task-settings`: this button will open the :ref:`task-settings` page where you
will be able to configure the :ref:`task-scheduler`, change the
@@ -20,11 +20,11 @@ The **Settings** page will give you three basic options:
:ref:`task-redundancy`
and :ref:`delete-tasks` and its associated task runs (also known as
answers).
-#. :ref:`app-delete`: if you click in this button you will be able to
+#. :ref:`project-delete`: if you click in this button you will be able to
completely remove the project from the system. A big warning message
will be shown before allowing you to delete the project.
-.. _app-details:
+.. _project-details:
Edit the project details
============================
@@ -34,7 +34,7 @@ In this section you can change the following parameters of your project:
* **Name**: the full name of your project, i.e. Flickr Person
Finder
* **Short name**: (also known as *slug*) the string that will be used to access
- your project, http://server/app/short_name.
+ your project, http://server/project/short_name.
* **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
@@ -276,7 +276,7 @@ Once an autoimporter has been set up, it can also be cancelled anytime:
And a new one can then be created.
-.. _app-delete:
+.. _project-delete:
Delete the project
==================
diff --git a/doc/user/tutorial.rst b/doc/user/tutorial.rst
index 0f9d4b5edd..dc61a8b618 100644
--- a/doc/user/tutorial.rst
+++ b/doc/user/tutorial.rst
@@ -170,7 +170,7 @@ them to create an empty project in the PyBossa server of your choice.
If you want to check if the project exists, just open your web browser, and
type in the folling URL::
- http://server/app/short_name
+ http://server/project/short_name
Where **short_name** is the value of the key with the same name in the file:
**project.json**. You sould get a project page, with not so much information,
@@ -262,14 +262,14 @@ tutorial: presenting the tasks to the volunteers.
If something goes wrong, you should an error message similar to the following
one::
- ERROR:root:pbclient.create_app
+ ERROR:root:pbclient.create_project
{
"action": "POST",
"exception_cls": "IntegrityError",
- "exception_msg": "(IntegrityError) duplicate key value violates unique constraint \"app_name_key\"\nDETAIL: Key (name)=(Flickr Person Finder) already exists.\n",
+ "exception_msg": "(IntegrityError) duplicate key value violates unique constraint \"project_name_key\"\nDETAIL: Key (name)=(Flickr Person Finder) already exists.\n",
"status": "failed",
"status_code": 415,
- "target": "app"
+ "target": "project"
}
The error message will have the information regarding the problems it has found
@@ -383,7 +383,7 @@ task presenter to the project. You can add it running the following command:
In PyBossa every project has a **presenter** endpoint:
- * http://PYBOSSA-SERVER/app/SLUG/newtask
+ * http://PYBOSSA-SERVER/project/SLUG/newtask
.. note::
The **slug** is the short name for the project, in this case
@@ -427,7 +427,7 @@ that a new task is being loaded: