~GSoC2010: Aditya Patawari's Installation Simplification and Auto Update

anildash edited this page Mar 26, 2011 · 1 revision
Clone this wiki locally

Proposal

I would like to work on creating an installer UI for the ThinkTank because while installing I felt that newbies will face a lot of problems as it was certainly not as easy as other application. I have used Wordpress and Drupal and I am aware about how the UI should look. Also I am aware of the intricacy of the development and will be able to handle this project efficiently.
I’ll first make some UI mockups and get that approved by the mentor with suggestions from the community.

Approach

The UI I have in my mind will beat the Wordpress in terms of number of steps. I intend to set up ThinkTank in one step plus “X” number of steps for “X” accounts to be configured.

After the UI mockup is approved I will start to work towards the coding for the UI. My target will be to make a UI for installing ThinkTank without involving Twitter since ThinkTank will having facebook as well at some point of time. After the installing the ThinkTank, the installer will provide the user interface to configure Twitter and/or Facebook. An account manager will be added which will facilitate easy addition and management of accounts of different social networks.

As I stated on the mailing list also, a smart installer can really ease a lot of problems faced during the install process. The following things I have already stated on the mailing list. I am repeating them here for the sake of proposal:

  • User can be presented with a form to fill in details. A PHP script can then edit the files with the required data.
  • Symlink can be created by PHP or by calling appropriate shell/python script.
  • Smarty : User can be asked to install smarty giving the relevant links if smarty is found missing
  • cron jobs can be made by suitable shell/python script
  • SQL can be populated by PHP or a shell script.

I will also add a PHP script to check for a new release of ThinkTank and prompt user to update it. The updater will not mess with the existing user configuration but will just change the existing files. A backup of the older version may be done in case the updater fails and needs to revert.

Function List

Some PHP functions with their expected behavior I would add are :-

  • verify() : Will be used to check the PHP, MySQL settings. It will also check if the Smarty is installed.
  • installSmarty() : Will be called if Smarty is missing.
  • error() : To display relevant error messages. In case the setting of MySQL are wrong or database could not be connected and so on.
  • installTT() : To install ThinkTank.
  • createTables() : To create and populate the tables in database.
  • addAccountXYZ() : Too add XYZ account to ThinkTank.
  • updater() : It will run a periodically and will return the latest version of ThinkTank in repo. User will be given an option to update keeping user data intact which means config.php and settings for the accounts saved by the user.

Mailing List Thread

Please check out this thread on mailing list.

UI Mockups and Proposed Interface

UI 1
http://adityapatawari.com/ThinkTank.jpg

UI 2 (Made as per the suggestions by Gina on UI 1)
http://adityapatawari.com/TTstep1.jpg

Proposed Timeline

The UI mockup should take no more than two weeks for approval. UI has to be carefully designed (Of course this is what the project is about!)

I would finish coding for installer within next four weeks.

Another two weeks for updater and rest of the time I would like to spend on bugs and patches. Also I would write a detailed documentation of the code used for UI in case ThinkTank adds some more tools in future.

Check Out My Google Summer of Code Application Here