WordPress Proposal for GSoC
Name: Anirudh S
Personal Website: http://anirudhspider.wordpress.com
Skype ID or GTalk: anirudh24seven (GTalk)
IRC nick: anirudh24seven
Phone number: +91 99404 27807
School Name: National Institute of Technology Tiruchirapalli
Years completed: 3rd year
PHP Experience Level: Intermediate
WordPress Experience Level: Plugin Developer
Link to project description on WordPress-powered blog: http://anirudhspider.wordpress.com/wordpress-proposal-for-gsoc/
Motivation: I am a big fan of WordPress and possess an Android mobile running Froyo. I was initially using the Release build of WordPress Android App and am now currently using the development version 1.4.0. I love blogging and microblogging. WordPress, being the most popular blogging tool, is my preferred choice of blogging. I frequently use the app to blog directly from my mobile rather than having to switch on my Laptop every time. I want to make the app quicker and easier to use, so that it also benefits everyone using the app, including myself.
Abstract: Although the current UI looks good, it could be much better and more user-friendly by having a dashboard-kind of an interface. This would lead to quick blogging on the go and remove unnecessary steps while performing basic operations like posting a new post, pictures and videos. This means removing the current tab-kind of an interface and bringing in a grid interface like the current Twitter and Facebook app. This also means that, more than trying to improve the User Interface, the User Experience would have to be improved. This means large buttons, easy to browse-interface and smooth graphic flows too.
What has been done so far:
1. I have created a few mock-ups. I got some wonderful feedback from a few people, including Isaac Keyet, and have modified them accordingly.
2. The code base for the Android App has been downloaded through svn and I have been figuring out what each part of the code does, in phases.
3. I have read through these following links and have fully understood what it takes to come up with a good UI for an Android App.
Idea in detail:
I have presented my ideas in a Problem-Solution basis so that it is easier to understand. The necessary XML files would have to be modified too.
1. Problem: The current UI in the form of tabs doesn’t allow for quick, easy posting or viewing. The current UI doesn’t offer enough eye candy.
Solution: Convert tabs into grid-like buttons for easy access. Basically, quicken frequent jobs like posting a new post, page, photo or video through a grid-style dashboard. With nice, large icons, this would look more pleasing to the eye. This is also the current format of many popular Android Apps like, Facebook, Twitter, Winamp and Evernote.
How: I have come up with a few mock-ups on what could be done.
Instead of calling tabView, gridView must be called after the Splash screen. gridView.java would be the new file that would act as the new grid-styled Dashboard.
To modify: wpAndroid.java, tabview.java
2. Problem: To access any feature, the User would have to return to the Dashboard either through a series of return presses, or click on a Dashboard button. This means that there are some unnecessary steps which can be avoided.
Solution: A quick-access dashboard. A pull-down (or pull-up) segment at the top (or bottom) can be provided. Pulling it down, would display the Dashboard Icons, thereby helping the user to access options quickly (like the ESPNCricinfo app).
How: Implement a subclass of the AsyncTask class to create this quick-access dashboard and implement the appropriate callback methods. UI would have to be similar to the original dashboard.
The mockup UI has been put up here.
3. Problem: The stats feature of the Android app is minimal and doesn’t provide many features while compared to the web based version.
Solution: Convert many static features into dynamic features e.g. Clicking on a statistic would take the user to a page with more details.
How: Convert existing graph to a bar graph similar to the web based version. Would have to work on the UI part in getStatsData function of viewStats.java.
To modify: viewStats.java
If time permits, I would like to implement a search feature on the Title Bar as well, during the GSoC time period.
Plugin, theme or core:
None of them. As this does not involve modifying the actual WordPress codebase, it is not a core project. It is neither a plugin nor a theme as well. Of course, this does involve modifying the codebase of the WordPress Android App, so it can be said that it is a core-related project, actually.
It is always difficult to convince people of any change in UI. 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 WordPress community members about changes in UI.
3. The end users should like it.
The project must also smoothly proceed along with the existing development work that is being done on the app. This means that other developers working on the project would have to accept changes in the UI and might have to adjust their work accordingly.
Would prefer to work under Dan Roundhill. http://dev.android.wordpress.org/author/danroundhill/
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, Mr. Roundhill isn’t available.
Schedule of Deliverables
Milestones and deliverables schedule:
I am having my final exams during the final week of April and would be available from the first week of May.
May 01 – May 22 : Pre-GSoC work
Discuss on various UI options with mentor and other WordPress users and come up with as many mock-ups as possible, within this time frame.
May 23 – June 07
Work on the conversion of dashboard interface from tabs to grids and confirm that it integrates with the existing features.
June 08 – June 17:
Work on the Quick Access Dashboard segment. Can be done quickly because it would reuse parts of the main dashboard.
June 18 – July 1:
Work on Landscape mode for viewing posts. Would have to use the Gravity aspect of the Sensor class.
July 2 – July 9:
Start work on improving the looks of the Stats page. Conver it into a bar Graph, with more details on clicking each bar. Implement viewing the statistics of Subscriptions, top posts and incoming links.
July 12 – July 20:
Work on the second phase of the Statistics page. Bring in Summary details and Humanize feature.
July 21 – July 31:
Work on implementing the Search feature on posts/pages, without much eye candy for the UI.
August 1 – August 8:
Come up with and complete the UI for the Search feature.
August 9 – August 13:
Begin minor modifications, bug fixes, tests and documentation.
August 14 – August 18:
Complete all the necessary work and get the code ready for shipping.
I do not have any other commitments, as of now. I will duly let the organization and my mentor know if there any unexpected and sudden delays, during the project and compensate for it, by working harder.
Open Source Development Experience
WordPress Experience: I have been an user of WordPress as a blog for a few years and have written in different blogs. I also used WordPress as a CMS to setup a website that I was working on, earlier.
I recently wrote a plugin for WordPress for displaying random WordPress facts in the admin panel. This would make bloggers and WordPress devs aware more about WordPress. It can be accessed at http://plugins.svn.wordpress.org/facts-about-wordpress/ and I have also put up the code here (http://anirudhspider.wordpress.com/2011/04/02/wp-facts/)
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 Chromium, grub, KDE and gedit.
Work Experience: I worked as an intern last summer at a company called Interviewstreet where I had to debug PHP code, modify it and run Unit tests on it using Selenium. It went successfully and they’re currently using the product which I helped, test and build. I had to use git to maintain the source code, and became quite familiar with git. I am also the member of the technical club of my college, Spider, where I work on Web development projects.
Academic Institution: National Institute of Technology Tiruchirapalli, Trichy, Tamilnadu, India
Current Program: B.Tech, 3rd Year
Anticipated Graduation: 2012
Academic Performance: CGPA: 8.24 (out of 10)
Grades: Algorithms (A), Data Structures (A), Graph Theory (A), Discrete Mathematics (B), Automata and Formal Languages (B), Networks (B), Operations Research (B), Software Engineering (B), Systems Programming (B).
GSoC for Credit: No.
You’re applying to work with WordPres during GSoC because: I use WordPress frequently and I believe that it is the leading blogging tool and CMS too. I use the WordPress Android App too and would want to contribute to something that I use, which I always do. Working with WordPress would help me make changes to a tool, which is used by so many people around the world and my effort would easily reach out to them.
After GSoC, you envision your involvement with WordPress will be: I would want to become a committer for the WordPress Android App and work on it continuously to ensure that I carry on with what I started. I would want to become a lead developer of the WordPress Android App and promote it even further. The WordPress community is simply awesome and I would like to contribute in my own way. In a nutshell, I won’t stop working on it.
Additional Notes: I would like to thank the WordPress team to come up with this project idea and for providing me an opportunity to work on this topic. Thank you.