I am hopping to solicit feedback and to find mentor(s).
Overview: Bespin for Drupal - an integrated, web-based, collaborative code editor form Mozilla Labs.
Description: Bespin for Drupal could be yet another input method using the WYSIWYG API, but with real-time collaborative editing. B4D could also be implemented to allow Dash command line, file editing, version control, syntax highlighting, API access - a built-in IDE with multi-user editing (such as with Google Docs).
Bespin could be implemented in two ways, embedded or by implementing the Server API with Drupal. Embedded B4D would be beneficial, but with significantly less potential. Both methods may be delivered, so both are discussed. The applicant is currently pursuing a B.S. in Computer Science, has participated in Drupal based website implementations, is a member of the EFF, FSF and IEEE, and is a true believer of the public commons importance.
Bespin: "The Bespin project is building a web-based code editor using the emerging HTML5 standard. The editor is easily extensible with JavaScript and can be used in your own applications or on our experimental hosted service." - mozillalabs.com/bespin/ Note: Bespin has real-time collaborative editing features as well as code editing ( a small sample of expressed collaborative editing need).
https://bespin.mozillalabs.com/
https://mozillalabs.com/bespin/
Embedded: Most of Bespin's functionality is available via embedded and with out a server. In this Drupal application, it is anticipated that file permissions would be controlled by the node in which the editor is displayed and plugins/features could not be loaded dynamically. Bespin could be used as a code editor, but it is expected that it would be used with WYSIWYG API as an input method.
In addition to WYSIWYG API, Bespin's CSS would need to use Drupal Theming - it is not expected that Embedded will be used to edit files.
Drupal Bespin Server: By implementing Bespin Server API within Drupal's framework, Drupal can be used to dynamically change the behavior of the Bespin client such as using Drupal Roles, loading the real-time collaborative functionality where appropriate, passing Dash commands, ect
The Bespin Server API is implemented in both Java and Python, but not PHP. At least one developer is working on a PHP implementation. Also, Bespin currently lacks PHP syntax highlighting, but there is interest outside of Drupal for such and since PHP can be anywhere in a file, there is need for multiple state highlighting - this proposal does not directly deliver the PHP syntax highlighting.
Timeline:
Mentors:
Contact Details: email, im
Difficulty: Medium
Comments
published draft of application
Thank you heyrocker and other at irc:#drupal for feedback. Here is a draft of my full proposal: google doc