Let’s make the Edgeryders website a research powerhouse! We have 20+ paid software development tasks available, immediately “up for grabs” for the Edgeryders community. You got that right, paid work
Context: We are currently working on a tool that will make edgeryders.eu a powerhouse for collaborative online ethnographic research, and will also result in tight semantic web integration. The tool is called Open Ethnographer, will be open source software, and is funded by a grant from Rockefeller Foundation.
Alongside developing this to a release, we want to provide paid work to developers in the Edgeryders community along the way. And of course, offload some of the work because else I’d be the (l)on(e)ly developer
So, starting immediately we have paid tasks available for software developers in the Edgeryders community. Here’s what is available so far – more tasks will emerge over the development in December and January, and then added here. Depending on the task, you will need to know JavaScript and / or PHP (Drupal knowlegde is a plus), and of course HTML & CSS. Required languages are indicated in square brackets below. Not all have (linked) fully detailed descriptions or budgets yet; but just tell in the comments what task you want details for and I will provide the details for these right away.
Strikethrough indicates that a task is completed, or discarded.
- Add config options to hide parts of the eComma UI. [PHP]
- Find out if CATMA includes code management / hierarchy building features.
- Exchange the markup creation JavaScript code with Annotator. [JavaScript, PHP]
- Install Annotator into edgeryders.eu and document how to do it. [Drupal config]
- Implement that tagging refers to a revision. [PHP] This way, an edit will no longer cause a loss of all notifications as it happens with eComma currently. But as discussed in the comments below, quasi-random word IDs already serve that purpose, and better. For exporting a date-specific version of coding work, revisions of the text are of no use either, instead we'd need a coding creation date field.
- Integrate eComma into the Drupal theme as a static right-column element. [PHP, CSS, HTML] It should be possible to fold this element into a compact toolbar (which would then be a non-static element, allowing to see other right-column elements then).
- Implement storing annotations relative to content, not content display. [PHP, JavaScript]
- Implement tagging in Annotator with realtime tag filtering. [JavaScript]
- Implement AJAX-based code creation within Annotator. [PHP] This should happen in the annotator_view sidebar, so it obviously depends on the task to integrate this first. Also, links should be added that point to the Drupal taxonomy interface for more advanced operations (merge, delete etc.). This is now replaced with on-the-fly tag creation in the Annotator tagging UI (increasing the budget of the corresponding task above).
- Implement tag selection by selecting a known tag in a hierarchy. [JavaScript] Might be possible with an existing Annotator plugin. However, it is more or less decided that we do not want hierarchies, and that tag selection by instant search is enough as a single fast and consistent tag selection option.
Implement basic exporting of codings. [PHP]Implement the "view annotation" feature with annotator_view. [PHP, JavaScript]Implement RDFa output of all public codings in live content. [PHP]- Ability to fork a public tag of another user. [PHP]
- Implement a feature to select which content to include in an export. [PHP] Basic exporting is already covered in a previous task.
Implement merging and deleting tags. [PHP]Implement a quotation manager. [PHP]- Modify Annotator to use quasi-random word ID tags for stand-off annotation. [PHP]
- Fix that CKEditor's "Remove markup" button removes word IDs. [PHP]
- Implement private tags. [PHP]
- Implement showing / hiding others' public tags in viewed text. [PHP, JavaScript] [optional; undecided]
And several tasks for usability enhancement related to the use of Open Ethnographer inside edgeryders.eu:
- Improve the CKEditor styles to improve content creation for study participants. [PHP] This means developing a better set of paragraph and character styles for the "Styles" menu shown inside CKEditor, and then rendering them inside CKEditor and in the final content the same way.
- Fix cut&paste changes to formatting inside CKEditor. [Drupal config] To improve content creation for study participants.
- Improve the look of content created by study participants by limiting their use of HTML. [Drupal config] Study participants should only be able to use formatting provided via the CKEditor styles menu. Admins would be able to additionally use "Full HTML" mode, which would not have these limitations.
- Prevent empty lines at the end of content. [Drupal config] This is meant to improve the look of content created by study participants. It should be implemented by adding an automatic content filter that will delete empty lines at the end of content, or just not show them when rendering the content (which is the more usual way how Drupal handles changes to content – namely, making them only effective for viewing, not saving them).
- Improve the user experience of study participants by overhauling the main navigation structure. [Drupal config, CSS] This includes introducing a two-level drop-down main menu, and integrating an (optional, already existing) group menu cleanly with the main menu.
- Improve the user experience of study participants by redesigning some of the major hub pages of the website. [Drupal config, CSS] This would include the blog index page and about four other ones. [optional]
Collaborating “as a crowd” on a paid software development project like this is new in Edgeryders (I think), so consider the first tasks – and their budgets mentioned in the tasks – a bit experimental and tell me what works and what has to be improved.
Here’s how to collaborate:
- Assign to yourself. If you want to work on a task, just add a comment and fill the field to assign it to yourself. (Tasks are first come, first served, but there are enough …)
- Start working right away. We have a tight project plan, so if you want to collaborate, start right away. And if you assign yourself a task, make sure you can work it off in a matter of days so we can proceed with dependent tasks.
- Delivery. Delivery should be as a Github pull request from a feature branch in your fork to edgeryders/openethnographer. This repository uses Git subtrees, and we have instructions for its usage. Then simply put a link to the pull request into a comment on the task here on edgeryders.eu. All other communication about your code (pull request additions, issue tracker issues etc.) will then happen on Github.
- Payment. Payment happens after your code was tested and integrated by @matthias and after you have sent an invoice to Edgeryders. You can aggregate several tasks before sending an invoice (and it makes our administration side easier as well.)
- Bugs? If there are bugs after payment that prohibit basic functioning, you will have to fix them within the budget. You don't have to worry about any small bugs though (edge cases, nice-to-have features etc.). If you find bugs in Open Ethnographer, create a new issue on Github.
- Questions? I (@matthias) will be available on short notice for all questions regarding development environment setup and what the task exactly means. See my contact information.
Photo credits: by Alosh Bennett, CC-BY 2.0, Flickr Image 2231572509