Hello, this is a draft proposal for GSoC 2011 for the WordPress community.
Abstract
Working with media in WordPress is by no means broken, but I believe it can be improved. Adding support for the HTML File API would bring improvements in this area, including drag and drop support, editing files (images,audio,etc) on the client, dropping (in due time) Flash, etc.
My vision is that at the end of this project, a WordPress user will not care at if any time during him/her writing a post on his blog, his Internet connection goes down.Editing files (and posts) on the client and using localStorage to save drafts when the Internet connection goes down can make everyone’s experience with WordPress a lot more safe and maybe a little more enjoyable.
As I see the project now, the deliverables would be two plugins: one to replace the swfuploader with a File API uploader (either based on an already existing library, or something developed from scratch), and a plug-in to enable localStorage backup of drafts and revisions. After proper reviewing of the plugins, I can see the functionality included in them valuable enough to be included in core.
Personal Data
My name’s Mihai Chereji, I’m a sophomore at Babeș-Bolyai University, in Cluj-Napoca, Romania. I’ve been working as a web-developer since August last year (until December at a web agency here in Cluj, and since then as a freelancer with my brother), and have been using WordPress for projects for clients and friends ever since.
Pages I have developed on WordPress so far include:
I have also implemented sites on CodeIgniter and done maintance and feature upgrades on other sites. It would be fair to say I have at least an intermediate (to advanced) understanding of PHP, and quite a good grasp on Javascript (which I love and hope to develop a lot more in that language).
I have not started blogging on WordPress until now because I’m still searching for an awesome domain (and some decent hosting) for my blog (or family of blogs) and some inspiration
.
I have not contributed to WordPress yet, except as a somewhat,kinda active member of the WordPress StackExhange (user name cronco), and a patch that is at the moment of this writing not reviewed. Frankly, contributing in any way has been very intimidating, (even writing this proposal is
)
Preliminary Schedule:
I would use the bonding period to read up and compare File API libraries, also to bring me up to speed on the uploader hooks, By the end of this period I should know if I am to use an external library or have to write everything from scratch.
- Weeks 1 – 5 ( May 24th – June 26th) – Focus on having a working, stable HTML5 uploader, that allows preview of files to be uploaded on the client.
- Weeks 6-8 (June 27th – July 15th) – Focus on integrating existing hooks in to HTML5 uploader and (if necessary, which I foresee will be), add new hooks.
- Weeks 9 – 12 ( July 18th – August 9th) - Create working offline/online hooks and add localStorage drafts and revisions backup.
- Weeks 13 – 15 (August 10th – August 31st) – Debugging, polish, extra documentation.
I expect not to be able to complete the second plug-in as I would desire, which would be to log into localStorage also media manipulation, in addition to simple post backup.
Conclusion:
caniuse.com, the premiere site when it comes to estimating new web technologies support, estimates that 40.17% of the current browsing public has support for the File API features (all users of Firefox up from 3.5, Chrome up from version 8, and Safari 6), and a whopping 78.41% for localStorage. This proportion will only grow, and I believe it’s a large enough number of users to make this project worthwhile today.
Update
I have decided to split this proposal into two: File API enhancements and localStorage drafts backup
For storing the data, a JSON encoded post object seems like the natural choice.
As for browser compatibility, you could just let WP do it’s usual thing.