When working on different Drupal projects I have faced a problem of repeatedly implementing certain features by code. Usually what I do is copy the code from some old modules/theme and customize it for the new requirements. I think most people use the same approach in this scenario.
I think we can automate much of this process by creating a code generation tool that maintains templates for most common functionalities. With this tool we can customize the template for the specific functionality and generate a Drupal component like module/theme/profile. Developers can share their templates for this tool. I am sure this tool will reduce the development cost and improve the developer experience(DX) of Drupal.
I decided to create an IDE for Drupal with this code generation functionality. I was thinking about creating an eclipse plugin for Drupal. But the eclipse plugin API is continuously changing and since I am not very fluent in java, I decided to create an online IDE in Drupal itself.
I have created a basic prototype of the IDE. Though this alpha prototype is ready to demonstrate the basic concept, I feel there is a lot that can be done and there are lot of bugs that need to be resolved. Now I want your guidance and suggestions to take this project to the next level.
You can check out the prototype here: www.nullcod.com
Following are the features that the current implementation supports:
- Module Builder:
We can create Drupal modules from existing templates and customize it by adding new hooks and include/exclude common hook specific code. Also a user can create a module by adding hook and customize the code in it without any coding.
Also there are the following functionalities in the module builder
1.1 There is a drag'n drop form builder. This can be used for generating forms for Drupal module without coding.
1.2 Functionality for adding unit testing using a GUI.
1.3 Creating ctools, view plugins
1.4 Drupal 8 plugins.
1.5 Including Features and Tokens for a module.
- Theme Builder:
A user of this IDE can create a Drupal theme in both Drupal 7 and Drupal 8 versions. We support both PHPTemplate and Twing engines. A user can add regions for a theme template by drawing rectangles in the theme builder. He can also add the variable that need to be printed in that region. He can also add custom HTML attributes for that specific region.
- Profile Builder:
We can create installation profile for Drupal using this IDE. Adding steps for each installation phase etc.
Please go through the demo site (www.nullcod.com) and let me know whether this is useful to you as a developer.
I need your suggestions to take this project to the next level.