- a research project. A Project is constituted by a project team (a group of Users), Records, and Record Types. A Project can optionally have a parent Project, in which case we'll call it a Subproject.
- a user of the system. Can be a member of more than one Project.
- the basic unit of research. user-uploaded content. A Record belongs to one User and one Project. (Ultimately these will be able to be shared by Users and Projects, but the system isn't there yet.) The fields of a Record are determined by its Record Type.
- Record Type
- a name and a collection of fields. These are defined by users as a way of "structuring" a research project. For example: a "Soundwalk" might contain an audio file and a path on the map; a "Traffic Sign" might contain an image, a map point, a number representing the height, and a text field for a short description. A Record Type can be shared across multiple Projects (and hopefully some will be!)
Certain details about permissions are still a little awkward and still being ironed out. But the basic idea probably won't change, which is:
- Primary Investigator
- The manager of a project, can create and edit the project, add and remove users from the project team, etc. Can also do all the below.
- A collaborator on a project can create records within that project. A collaborator can also add subprojects, which they then have permission to edit and manage etc.
- A contributor on a project can create records within that project. Cannot edit the project details, create subprojects, edit roles, or anything else.
Each of these roles is per project -- which is to say, you could be a Collaborator on one project and a Contributor on another.