Student: Marko Novaković


My name is Marko Novaković, I am 26 years old and I live in Belgrade, Serbia (UTC+2). I am studying a master course in the School of Electrical Engineering in Belgrade, Computer Science department. I have had experience in commercial and academic projects. I worked for one local company NPS as an ERP developer, solution Microsoft Dynamics AX. I have also a lot of honorary jobs, such as a WP plugin developer for Prelovac Media. I wrote the plugin WP Quick Deploy and I am writing two premium plugins now. I participated in two academic European FP7 projects ARTreat and ProSense.

Project Description:

This project consists of a plugin, server side endpoint, which will be deployed on, and protocol in which communicate between.

The plugin is displayed as an options page, located in the Settings box. The plugin lists all plugins and themes, which are installed and offers an option to translate a blog in other languages. Plugin also manages po and mo files for the core, plugins and themes in the wp-content/languages/ folder. The role of plugin is also to take care about versions of plugins, themes and core.

The server API endpoint deals with requests for downloading po and mo files, depending on language, plugin or theme name and version. The server endpoint could also manage simple and batch requests, which are defined by plugin functions and protocol. The server sends po and mo file only if this version of plugin or theme is fully translated, unless sends the message that plugin is not translated. If some plugin ot theme is not translated, user can request translation via the plugin options page.

The protocol for communication between the plugin and the server endpoint override the HTTP protocol and is incorporated in the plugin and the server functions. On the plugin side, the protocol uses the WP HTTP API.

Project Mentors:

  • Andrew Nacin
  • Nikolay Bachiyski

Project Schedule:

  • April, 27th – April, 29th (2 days): Defining final schedule
  • April, 30th – May, 5th (6 days): Writing full specification and setup SVN
  • May, 6th – May, 12th (7 days): Learning Settings API
  • May, 13th – May, 19th (7 days): Learning HTTP API
  • May, 20th – May, 26th (7 days): Designing protocol for Language Packs
  • May, 27th – June, 2nd (7 days): Making simulation of the server API endpoint and plugin options page in the local server
  • June, 3rd – June, 9th (7 days): Begin coding the real endpoint on the server side and protocol
  • June, 10th – June, 16th (7 days): Begin coding endpoint on the plugin side
  • June, 17th – June, 23rd (7 days): Composing functionalities of protocol and endpoints
  • June, 24th – June, 30th (7 days): Finishing with protocol and endpoints
  • July, 1st – July, 7th (7 days): Boosting plugin and server side functionalities (adding requests for translation, and so on)
  • July, 8th – July, 14th (7 days): Adding support for multi-language blogs
  • July, 15th – July, 21st (7 days): Unit testing for all cases
  • July, 22nd – July, 28th (7 days): Integration testing of protocol
  • July, 29th – August, 4th (7 days): Performance testing
  • August, 5th – August, 11th (7 days): Deployment of the API endpoint and protocol
  • July, 12th – August, 18th (7 days): Writing final documentation for plugin