I will implement the “Help Topic” module that will - according to the plans of the Drupal Documentation Team - serve as the foundation of the “curated documentation” system and will be part of a better help system for Drupal 8.
I will create a Drupal module that defines an entity type called "Help Topic", which will have the following specific bundles (content types):
- Task - step-by-step instructions to complete a task.
- Concept - conceptual information.
- Module overview - description of a Drupal module.
- Glossary entry - definition.
- Reference - background information.
Each bundle will have specific fields attached to it (for the implementation, ideas will be taken from the DITA Standard); details of the fields are in the Help System proposal at http://drupal.org/node/1095012.
In addition, the module will provide topic-to-topic linking (as specified in the proposal, using a text filter with suggested syntax), and the creation of "maps", which are basically collections of topics in outlines (some initial research on how to store such hierarchically structured data indicates that closure tables will be most appropriate). Drag-and-drop user interface for map creation is not in the scope of this Google Summer of Code proposal.
See the full Help System proposal (mentioned above) for details.
Benefit for Drupal
- System that generally fits the requirements for a.) creating easily maintainable, structured documentation for Drupal, b.) creating site specific, client/user documentations.
- Map entity that could overcome some limitations of the Book module. E.g. having the ability to let the same page appear in multiple maps - imagine a personal/favorited documentation collection.
- Fundamental basis of future more sophisticated help/documentation related features. E.g. client/server module for updating local help system with newest version from the curated (or even independent) documentation servers; import/export from/to different formats (DITA, JSON).
- Create the module providing the entities/bundles described above.
- Avoid patching core if possible. The work will largely revolve around the entity system, as there is the Entity API module, I suppose it will cover most of the additional functionality required. If it is unavoidable, I will provide patches to either contrib or core.
- May 21 - June 2:
- Discuss plans and required features with the Drupal community.
- Research core Entity / Field system and the Entity API contrib module.
- Research relevant parts of the DITA standard to figure out the appropriate way of mapping DITA ideas to Drupal concepts.
- Set up development environment - projects/sandboxes on Drupal.org.
- June 4 - June 30:
- Implementation of Help Topic entity and its bundles.
- July 1 - July 8:
- Implementation of topic-to-topic linking.
- July 9 - August 4:
- Implementation of the Map entity.
- August 5 - August 12:
- Extension of topic-to-topic linking with support for Help Topics in a Map entity.
- August 13 - August 19:
- Getting feedback from the Drupal community.
- Final validation, testing and documentation of features.
- August 20 - August 24:
- Safety buffer for finishing documentation.
I am a 23 year old student from the town of Kecskemét, Hungary. My interest towards open source software started in secondary school, when I got to know Blender. At that time - as I was merely a user of the tool - I was only dreaming of writing code for such a project, but that dream was so strong that I could never really forget it. Afterwards, I started studying Biology BSc, but I had to realize that the world of bits and bytes is far more interesting to me, so I had to switch.
Currently, I am studying Software Information Technology BSc at the Institute of Informatics, University of Szeged, Hungary. In my first year I was taking part in the ‘BSc Talent Nurturing Program’, meaning some of our main courses were extended with additional material and expectations were also slightly higher. I started programming with university, which might seem odd in this field, but it never hindered my advancement. I also attended a course about Drupal module development (unfortunately course detail page is in Hungarian).
I have been increasingly involved in Drupal community and web development in the past year. I regularly attend the local Drupal User Group meeting and attend a local technology meetup (SzegedTech). On both events I occasionally try to share my finite knowledge in the form of presentations. My Drupal related contributions include bug reports (#1285210), patches (#1032712, #1000702, #1221980), support (#1203152) and co-working on some great modules (#1354606, #1352604, #758280).
I have some experience with Drupal development, but there is always more to learn. Besides seeking the opportunity to develop my skills further, I am also keen on providing value for the community, hence I see myself fit for the task.