== Implement HTML e-mail support in MediaWiki ==
Project URL: [[ https://phabricator.wikimedia.org/T15303 | T15303 ]]
Task Number: T15303
== Personal Details ==
Name: **Perside Mondjo Rosalie**
Email: **rosalieperside@gmail.com**
IRC: **r054l13**
Location: **Cameroon**
Working Hours: I plan to spend 40 hours a week in my Outreach 2015 project and my intended start date to end date is from: November 17th, 2015 - March 7th, 2016. Working hours will be from 11:00pm – 4:00am (GMT + 01) Central Africa Time Zone
== Project Outline ==
Due to the advancement of technology and also the rate at which people(developers, users and more ...) communicate using emails online, there is the need for various formats of email support to be used in communication to enhance and better the information transmitted from source to destination. Email supports are the forms that emails can take before, during or after transmission and all formats have their advantages and disadvantages.
Most popularly, there exist;
- HTML email support and
- Text Emails support
Currently, MediaWiki has the Text support for emails where information is transmitted in the form of plain text and no styles are applied to such emails and my project is to build an HTML email support. On the users perspective, the HTML email supports is really friendly and enables emails to be well formatted such that information with specificity will be conveyed correctly like; source codes, commands and more.... Using the HTML email support, emails sent form source to destination will be styled in a nicer way for users to easily interpret the meaning of the message and isolate particular parts of the message if need be. Also, HTML emails make a big difference with RTL languages. Since HTML uses the (LTR, RTL) as its base directions for text, it is easier to double check and make sure everything is marked up. So this multi-directional or directional(bidi) way makes HTML better than RTL languages.
This article is interesting and also list some advantages for email support: https://www.campaignmonitor.com/blog/email-marketing/2007/09/why-we-need-web-standards-supp-1/
Mentors: @Parent5446, @Tinaj1234
== Experience with MediaWiki ==
So far, I can say MediaWiki is my first Open source organisation that i have seen that gives a lot of help to their developers and those who are willing to contribute. Also, i like MediaWiki because of the fact that it is a platform that powers free information sharing technologies and also their coding style is clean enough to new comers in the community.
List of what i have done;
- Set up my development environment(MediaWiki code base)
- Created a phabricator account and phabricator sub-task (my project proposal).
- Created a MediaWiki unified account.
- Own a Gerrit(developer access) account for code review and bug fixes.
== Available for Communication ==
Like i briefly mention in my personal information section, i will make sure i spend at least 40 hours on my project every week and i will mostly working in the above mentioned time. But since there are some days that can be favorable, i might spend more than 7 hours working on my project and i will make sure to stay online all the time even if i am not on my computer so i can read the logs when i get back on my screen.
In addition to this, i will make sure i always have meeting everyday with my mentors and say in touch with them from time to time through email, irc channel during this program. Also i will make sure i respect time for meetings and deliver the tasks for everyday as mentioned in my timeline. Reporting too is a major key to update my mentors on what i have done weekly. I will make sure i submit weekly reports so that they can be up to speed on what has been done for the whole week.
== Project Time Line ==
Once selected on this project, it is certain that i will focus on it till the program is over, meaning that i won't work on any other projects will the 7th March 2016(end of Outreach Round 11).
== Prerequisite Work (Nov 17 - Dec 7) ==
At this point, the coding for the program has not yet began but i will have to do some research and information gathering to make sure that i have all what i need to kick start with implementing the project once the program officially begins.
During this period, i will be thinking and designing the following issues;
- Design for the HTML email template that various emails for MediaWiki will take like; reset password email, welcome to MediaWiki email, confirm account emails, etc..
- Since HTML emails is all about inline styling, i will make sure i and the mentors decide on the way we will design the editor / parser that will read the emails and format it for HTML support mode. But if HTML support option is enabled, then the parser will read the email and format it in the appropriate way.
- In an online editor like in phabricator, there are tools in the editor used to edit text, once these tools are used, it will be parsed and formatted to the correct HTML message before send.
- Read documentation about the previously implemented text email support here:
[[ https://www.mediawiki.org/wiki/Extension:EmailToWiki | https://www.mediawiki.org/wiki/Extension:EmailToWiki ]],
[[ https://www.mediawiki.org/wiki/Manual:Configuration_settings | https://www.mediawiki.org/wiki/Manual:Configuration_settings ]],
[[ https://en.wikipedia.org/wiki/Wikipedia:Emailing_users | https://en.wikipedia.org/wiki/Wikipedia:Emailing_users ]],
[[ https://www.mediawiki.org/wiki/Extension:New_User_Email_Notification | https://www.mediawiki.org/wiki/Extension:New_User_Email_Notification ]],
[[ https://www.mediawiki.org/wiki/Extension:EmailForm | https://www.mediawiki.org/wiki/Extension:EmailForm ]]
- Other more information i will get form Googling concerning this project, i will also make sure i go through.
== Week 1 (Dec 8 - Dec 14) ==
Read about the already implemented email support core, I have to make sure i keep the initial implementation of the mailing support that already exist so far. Also i will use both option (b) and (c) for implementing the HTML email support as mention in the project description. HTML email support in MediaWiki to be in the following approaches.
- There should be an Option to set the use of HTML support in the preference area by the user.
- Server side configuration whether to send HTML emails or Text emails based on the users Internet connection(advanced idea) or by default.
At the end of this week, i will have to submit a report for the work i have done.
== Week 2 (Dec 15 - Dec 21) ==
- Start building the HTML email templates for each of the email alerts that shall be used in MediaWiki, based on what i shall decide with my mentors, if we decide to use the same design for all emails, then i shall just modify the content of the design based on the parameters sent to it, else i will need to build different email template for different emails.
- I will also code the HTML and CSS for styling the emails in a particular way to make the template nice. Also i will add some global variables in the DefaultSettings.php file in the include/ folder of MediaWiki to hold the mode of email support. By default, email will be text and if HTML email is set, then HTML emails will be sent. Variable could be
$wgDefaultUserOptions['htmlemail'], and it shall have two values,
- $wgDefaultUserOptions['htmlemail'] = 0; default for using text emails
- $wgDefaultUserOptions['htmlemail'] = 1; will be the value to use HTML email support.
This is a preference variable, so it will be the one to use. Do testing for the week for all what i have implemented then i will have to submit a weekly report.
== Week 3 (Dec 22 - Dec 28) ==
Continue with the implementation of the email templates that will be used and make sure that the editor used will come with some data that will be processed by a parser to get the email content with predefined formatting to be converted to HTML format. For example, ``` some code ``` will mean <code> some code </code> in HTML.
So writing the message from the editor and sending, the parser will take the message and interpret it, translating everything required for translation and then putting it in the right template before send. Unit testing.
- Submit report
== Week 4 (Dec 29 - Jan 4) to Week 6 ( Jan 12 - Jan 18)
- Unit testing, Integration testing and fixing of bug for the entire templates and translation(mapping) of the message. At this level, i will have to push some codes to my branch online so that my mentors can see the work i have been doing so far.
- Continue working on the templates to make it perfect and also fix some bugs if found in the other templates.
- Submit reports for each weeks, starting from week 4 to week 13(final report for the whole project)
== Week 7 (Jan 19 - Jan 26) to Week 13 ( Feb 29 - March 7) ==
- Make the emails responsive and the same for all browsers. At least for the most popular, Google Chrome, Mozilla Firefox, Safari, IE10 etcc...
- Integrate the existing emails on the HTML support mode so that confirmation email, reset password email and other existing emails will benefit from the HTML support.
- Continue testing and fixing bugs to make sure everything works properly and continue implementation on the templates.
- Submit Final Outreachy report and submit at the end of the program
== Accomplishment of the Project ==
This project is to accomplish the task of MediaWiki having an HTML email support. This project will be integrated in MediaWiki in such a way that when a MediaWiki user has an account, based on the implementation of the choice we choose above, then we shall have the following results.
- If the user's configuration for HTML email support is set to true, then he/she can send emails using HTML support else he/she will use the default which is Text emails.
But generally, this project aims at making MediaWiki have HTML email support.
== About me ==
I am a sophomore (level 300) computer engineering student from the University of Buea, Cameroon. I have good knowledge about web development technologies; PHP 5, HTML 5, CSS 3, JavaScript, a bit of JSON, MySQL server and Apache. I am also good at C, C++ and Linux shell scripting (bash).
I was so convicted within and was not happy that with all these skills, i have not contributed to a real live project and i heard about Open Source communities, and i decided to give it a try. I found this organisation matching my skill set in what they do so i decided to contribute code for them by participating in the Outreach Round 11 program.
== Past Experience ==
Being in MediaWiki is really cool and the rate at which i saw other developers contributing to the code makes me really motivated and made me to work like them too. Below is a list of my fixed bugs for both extensions and the wiki core.
== Bugs Fixed ==
-
== Other Information ==
(Mandatory by Outreachy application format here [[ https://wiki.gnome.org/Outreachy#Submit_an_Application | https://wiki.gnome.org/Outreachy#Submit_an_Application ]])
Do you meet the eligibility requirements outlined? Yes
Education: Sophomore in the University of Buea, Cameroon. Studying Computer engineering.
How did you hear about this program? I heard about Outreach from a friend who is a MediaWiki contributor.
- When this project for Outreach is complete, i will have to make improvements on the project personally to make sure it is perfect and also after the project, i will make sure i remain and keep contributing codes to the organisation.