Google Summer of Code Proposals

Proposal 3: New Extension Install Manager w/ Process Tracking in Debug Mode


Abstract:

Detailed description:

IDEA & BENEFITS:

Update Systems presently doesn't have an easy to navigate structure for handling the large amount of information that is potentially available when a user wishes to install new extensions into their system backed from the update system. Updates are presented already and temporarily uninstalled items are also displayed as a technology demonstration of what can be achieved using the new system.

A completely new look extension install manager is required to help make meaning of the information that the update system exposes. In part this system should also expose information about existing installed extensions in the system (including any pending updates they might have) as well as new extensions that are available.

I would like it to be a kind of FreeBSD Ports system (description is in milestones), which will let administrator to search, install, uninstall and update new extensions from admin backend.

Joomla! extensibility idea with extensions and FreeBSD extensibility with ports are simliar, so why not to connect them? With the help of Ports system, administrators will easily find and install/update what they want in 2 simple clicks (find, install/update).

ABOUT ME:

I am Edvard Ananyan aka edo888, a citizen of Armenia. I am 20 years old, and I have been granted a full scholarship to be an undergraduate student at Yerevan State University majoring in Applied Mathematics and Physics (Department of Physics).

Being highly interested in computer science, I have also accomplished a number of open source projects. Some of them are listed below:

  • GTranslate: an automatic translation module based on Google Translate
  • Jumi: Joomla! custom content extension package (in partnership with Martin Hajek)
  • Jumi Tips & Tricks
  • JosLang: Multilingual system plugin (in partnership with David Thomas)
  • Xinha WYSIWYG editor plug-in

As you may know I'm also a Joomla! Bug Squad member.

You can read more about myself on my website: http://edo.webmaster.am/about

Here is also an online reference: http://tinyurl.com/edo888 -> http://jumi.vedeme.cz/index.php?option=com_contact&view=contact&id=2:ed&catid=12:contacts&Itemid=49

MILESTONES & DEVELOPMENT PROCESS TIMELINE:

I would like to describe FreeBSD Ports main idea integrated into this project here. During Joomla! install, system will also install "ports" ( extensions) data, which would be included in the installation package (this will save traffic bandwidth). After admin will be able to search ports collection from local repository (not from update server) and fetch extension for installation (from developer's site). Administrator will be able to update ports by simply sending repository version and getting only update information from update server (could be done with XML/JSON).

If the Joomla! debug mode is on, the installation manager will log installation process on the screen. So developers will easily find the problem if their extension have such during installation.

Future enhancements: The other feature, which could be implemented in future is reporting mode: developers will receive errors/feedbacks from system or admins directly from backend. It would help developers to know the sites, which are using their extensions and have more feedback about issues their extension has.

Note: Something like this was started on GSoC 2006 (Package Management System for Joomla!), but Wilco told me that it was incomplete. I was not able to find the code of it, but there are some ideas, which could be included in this project in future, it is port dependencies.

Here are the milestones to complete:

  1. Ports collection package (could be MySQL table or XML file, MySQL table will enable fast searching and easy updating), which would be installed with Joomla! installer to the site
  2. Search interface in Extension Install Manager
  3. Update ports collection API
  4. Repository with up to date data about ports and API for update server to response to Joomla! website requests
  5. Fetch API
  6. Log API to log install/uninstall/update processes
  7. Interface for viewing updates for installed extensions

I'm going to work 8 hours a day, 5 days a week; it's a full time job.

April 20 - May 17: TIME TO SPEAK WITH THE MENTOR
Week 1 May 18 - 22: (1)
Week 2 May 25 - 29: (2)
Week 3 June 1 - 5: (3)
Week 4 June 8 - 12: (4)
Week 5 June 15 - 19: (4)
Week 6 June 22 - 26: (5)
Week 7 June 29 - July 3: PREPARE FOR THE MID-TERM EVALUATION
Week 8 July 6 - 10: SUBMITTING THE MID-TERM EVALUATION
Week 9 July 13 - 17: (6)
Week 10 July 20 - 24: (7)
Week 11 July 27 - 31: RESERVED TIME
Week 12 August 3 - 7: PREPARING FOR THE FINAL EVALUATION, PUTTING EVERYTHING IN THEIR PLACES
Week 13 August 10 - 14: PENCILS DOWN, SUMMARISING RESULTS, WRITING DOCUMENTATION
Week 14 August 17 - 21: SUBMITTING THE FINAL EVALUATION
August 22 - 25: TIME FOR LAST MINUTE DECISIONS

MOTIVATION:

  • Bringing new functionality to Joomla!
  • Making a big step towards a professional career
  • Being involved in serious project development for getting more experienced
  • Meeting interesting people, learning from them and SIMPLY HAVING FUN!
  • Increasing chances to get full scholarship for masters degree in the US
  • Earning some money for my further education
  • Making a dreams come true

I'm looking forward to continue contributing to Joomla! in the future and organizing Joomla! Armenian community.

Buy Oil Paintings, Acrylic Paintings, order custom painted Murals, Portraits, Landscapes, Still Lifes, Flowers, Replicas and Art Prints on ArtMaestro.com.
Translate and make your website multilingual with GTranslate.