phpBB Project Proposal for GSoC 2012
Name: Shibu Lijack A
Personal Website: https://shibulijack.wordpress.com
Timezone: UTC +5:30
phpBB/GitHub/IRC username: shibulijack
Phone number: +91 80566 36555
School Name: College of Engineering, Guindy.
Years completed: 3rd year
PHP Experience Level: Intermediate
Idea: Rich Text Editor Integration
I am a big fan of phpBB. I have been using phpBB forums since I was 13. I am now currently using phpBB 3.0.10 “Olympus”. I love forums. phpBB, being the most popular bulletin board software, is my preferred choice for forums. Some of the novice users find it hard to work with the BBcode editor. I want to make the posting editor quicker and easier to use by including a rich JS based WYSIWYG editor, so that it also benefits everyone using phpBB, including myself.
What has been done so far:
- I have created a few mock-ups. I have got some wonderful feedback from a few people and have modified them accordingly.
- Phase I: https://shibulijack.wordpress.com/phpbb-visual-editor-phase-one/
- Phase II: https://shibulijack.wordpress.com/phpbb-visual-editor-phase-ii/
- Phase III: https://shibulijack.wordpress.com/phpbb-visual-editor-phase-iii/
- I have submitted a patch in github.
- Repository: https://github.com/shibulijack/phpbb3/tree/feature/visual-editor
- PR: https://github.com/phpbb/phpbb3/pull/651
The phpBB source code has been downloaded from the phpBB repository at GitHub and I have been figuring out what each part of the code does, in phases. Also, I have read through coding guidelines and wiki articles and have fully understood what it takes to come up with a valid patch for phpBB.
- CKEditor Integration *
- Adding an option in UCP *
- Adding an option in ACP *
- Support for additional Text editors **
Integrating CKEditor into the core will be the major component part of my project. The sub components of this part would be handling custom BBCode and also integration of phpBB smileys. Other components such as adding an option in UCP and ACP can be done only after the integration. If development takes longer than expected, support for additional Text Editor can be dropped.
Idea in detail:
I have presented my ideas in a Problem-Solution basis so that it is easier to understand. The necessary core files would have to be modified too.
1. Problem: The current post editor doesn’t allow for quick, easy posting for novice users.
How: I have come up with a mock-up on what could be done.
Instead of displaying the usual editor, the JS for CKEditor is included along with the plugin to output BBcode so that Visual Editor is displayed. Also the usual editor’s buttons need to be removed as they are not used by CKEditor.
To modify: posting_editor.html, posting_buttons.html
2. Problem: Some users might prefer the current editor rather than Visual Editor.
Solution: An option can be set in the UCP to enable or disable the Visual Editor.
How: Include a new field in the SQL Schema for setting a user variable to enable/disable Visual Editor. Then, an option can be displayed under Board Preferences->Edit Posting Defaults in UCP.
To modify: posting.php, ucp_pm_compose.php, ucp_pref_posts.html, create_schema_files.php
3. Problem: Admins might want to enable or disable the Visual Editor globally.
Solution: An option can be set in the ACP to enable or disable the Visual Editor globally.
How: Edit the core ACP files to include an option in ACP.
It is always difficult to convince people of any change in posting editor. This means that:
1. I have to be convinced whether a particular change has to be brought about.
2. I have to convince my mentor and other phpBB community members about changes in the editor.
3. The end users should like it.
The most difficult challenge would be the handling of custom BBCodes. A custom JS plugin must be written for the custom BBCodes so that it could be included in the Visual Editor.
The project must also smoothly proceed along with the existing development work that is being done.
I would prefer to work under Nils Adermann (@naderman)
He is very active, gives prompt feedback and is active on the irc channel. I’m sure that he would be able to guide me through the project successfully. He is also the mentor whom I have interacted with, as of now.
I would be eager to work with other mentors too, in case Nils Adermann isn’t available.
Milestones and deliverables schedule:
I am having my final exams during the first two weeks of May and would be available from May 16.
May 16 – May 21 : Pre-GSoC work
Read Documentation. Get up to speed to begin working on my project.
May 22 – May 29:
Discuss on various issues with mentor and other phpBB users and come up with as many mock-ups as possible, within this time frame.
May 30 – June 07:
Work on CKEditor plugin. Learn about composer and add the CKEditor dependency files using composer.
June 08 – June 17:
Create new CSS files for CKEditor to suit the styles prosilver and subsilver. Implement the corresponding changes in the plugin files.
June 18 – July 1:
Integrate the Visual Editor into the core. Make sure phpBB smileys get integrated with the editor. Take care of issues such as JS turned off.
July 2 – July 9:
Start work on improving the looks of Visual Editor. Optimize button images for web. Optimize code.
July 14 – July 24:
Learn more about BBCode plugin of CKEditor. Find out a way to handle custom BBCodes in the Visual Editor.
July 25 – July 31:
Set up an option in the UCP and ACP to enable or disable Visual Editor. Make necessary changes in the core files and SQL Schemas.
August 1 – August 8:
Work on implementing other Rich Text Editors such as TinyMCE so that users can choose the visual editor they like. Begin minor modifications and bug fixes.
August 9 – August 13:
Perform various tests and solve issues if any. Scrub code, write tests and documentation.
August 14 – August 18:
Complete all the necessary work and get the code ready for shipping.
If time permits, I will also work on other bug fixes, RFC and ideas [likehttps://shibulijack.wordpress.com/phpbb-attachment-improvements/ ]
I do not have any other commitments, as of now. So I will be working full-time on the project. My college starts around July last week, after which I will be attending college for 3 to 4 hours in the morning. I intend to work late in the evening to make up for the lost time. I will duly let the organization and my mentor know if there are any unexpected and sudden delays during the project and compensate for it by working harder.
Open Source Development Experience
PHP Experience: I have 2+ years experience in PHP, HTML, CSS and JS. I have designed a number of websites. Take a look at my portfolio: https://shibulijack.wordpress.com/portfolio/
I would rate myself as an Intermediate regarding PHP, HTML and CSS.
phpBB Experience: I have been an user of phpBB for a few years and have been moderator and admin in different forums (like forumw.org). Also, I have used phpBB as a bulletin board software to setup a forum website for my college department. I have submitted a
Other Open Source/Free Software Experience: I have spent time working on many Open Source projects trying to understand their code base and building them, like WordPress.
WordPress profile: http://profiles.wordpress.org/shibulijack/
I worked as an intern last summer at a company called TechPassion where I had to develop a website. I learnt a lot about PHP, HTML & CSS through that.
Academic Institution: College of Engineering, Guindy, Chennai, Tamil Nadu, India.
Current Program: B.E Computer Science & Engineering, 3rd Year
Anticipated Graduation: 2013
Academic Performance: CGPA: 8.6 (out of 10)
GSoC for Credit: No.
I am applying to work with phpBB during GSoC because: I use phpBB frequently and I believe that it is the leading bulletin board software. Working with phpBB would help me make changes to a software, which is used by so many people around the world and my effort would easily reach out to them.
After GSoC, my involvement with phpBB will be: I would want to become a committer for the phpBB and work on it continuously to ensure that I carry on with what I started. At first, I started learning phpBB only for GSoC but later, I have fallen in love with it. The phpBB community is simply awesome and I would like to contribute in my own way by fixing bugs and completing RFCs. In a nutshell, I won’t stop working on it.
Additional Notes: I would like to thank the phpBB team to come up with this project idea and for providing me an opportunity to work on this topic. Thank you.
Template courtesy: Anirudh