[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[phpGroupWare-developers] gSOC2008 > phpGroupWare > Rework Setup

From: Andriy Kushnarov
Subject: [phpGroupWare-developers] gSOC2008 > phpGroupWare > Rework Setup
Date: Thu, 3 Apr 2008 12:40:14 +0300

Hi my name is Andriy Kushnarov, I am a student that would like to
apply for google summer of code. I would like to apply for progect
"Rework Setup"

I would like to hear your advices on my application:

* Summary

The current setup process is dated and clunky, phpGroupWare really
needs something more user (and developer) friendly.

* Benefits

The installation tool is the face of any application -- first that
user sees when he is going to make acquainted with phpGroupWare. Now
phpGroupWare has ugly and not user friendly interface for installation
tool. The new setup process will minimize the number of clicks and key
strokes needed for a user to get a basic phpGroupWare up and running,
while allowing more experienced users to enable the more advanced
options. The initial setup will use a step by step wizard process.

A successful project will be measured by
- web site administrators that will install the phpGroupWare
- developers that code for phpGroupWare
- phpGroupWare community will attract new users to the fact that
phpGroupWare is easy to install

* Deliverables

A directory 'setup' in the root of the project contains the
installation tool files. My proposition is to make new installation
tool according to MVC pattern. Using this approach it will be made a
new installation wizard that step by step will guide user to
installation process.

Installation steps:

+ Introduction. No changes to any configuration files should be made
to start up the installation wizard. The installation wizard is
located  in setup/ and is callable for exactly one installation. In
case of using the central database "phpGroupWare already installed"
status should be saved in local files. The installation wizard is
jumped to if determined that phpGroupWare is currently not set up. For
every step taken an object oriented interface must be provided. After
the installation the API is used to review the setup and provide help
if anything changed. The installation has multilingual interface. In
case of there is any error or not proper configuration(e.g. no
database support found on server) for the current step user cannot go
to the next step while he correct the error. There is button "Reload"
that should be clicked after the all step errors are corected. The
setup process info is saved so in case of stopping of installation
process(e.g. user computer rebooted) user can continue the
installation process from the same step. There is possibility go not
only to the next step but to the previous also(e.g. user wants to
change something in previous configuration).

+ Step 1: Current System Status. Check:
 - if cookies enabled
 - php version
 - required extensions
 - required software on server
Output list of required software and some helpful information for it.

+ Step 2: Directory configuration. After check-out from CVS or
decompressing, the directory and files permissions are probably not
set properly. The step will check if all directories exist and if they
are writable/readable if required. Show a list of directories that
have been checked. On this step user also can specify "Server Root"
and "Include Root"(these two fields has preset values). Also user will
be asked to create will have two links: "Download" and "View", so he can upload correct
file to the server). After the submit form should be validated and
checked if header file exists on server. If something wrong(e.g. user
entered bad server root) user will be redirected to the same step with
error description.

+ Step 3: Configuration parameters. Here user should configure some
additional parameters like "Persistent connections", "Sessions Type
", etc. Some of dropdowns have default values. Near the input field
"MCrypt initialization vector" there is a button for random generation
of vector string by JavaScript. After the submit form should be
validated. "Configuration Password" also will be asked on this step.

+ Step 4: Database configuration. Ask the user to input required
database parameters: database type(dropdown with supported databases
types), db host(default localhost), db name(default phpgroupware), db
user(default phpgroupware), db password(default empty). After the
submit database permissions will be checked. This validation will be
performed by making simple tests like:
 + create table phpgw_test
 + insert into phpgw_test
 + update phpgw_test
 + delete phpgw_test
 + drop table phpgw_test
if all permissions are OK user is redirected to the next step. In case
of any error appropriate message will be shown to the user.

+ Step 5: Do installation. On this step all checks are run again.
Actually all user configuration changes take affect on this step.
There is a list with information about all actions that took affect.

* Plan

Mentor can track the project progress by daily commits, weekly reports
and by directly contacting me.

The success midterm criteria: working installation that install the
The fully-completed project criteria: the working installation without
bugs with good documentation.

All timelines are compatible with google Summer Of Code timelines:
+ 14.04.2008 - 26.05.2008: Communication about the project with
mentor, reading the documentation on phpGroupWare and it's code
+ 26.05.2008 - 7.07.2008: development. Every day commit, every week report
 1st week: Software Design(UML, class design, etc.)
 2nd week: Step 1 implementation
 3d  week: Step 2 implementation
 4th week: Step 3 implementation
 5th week: Step 4 implementation
 6th week: Step 5 implementation
+ 7.07.2008 - 14.07.2008: bug fixing, stable build, report on done work
+ 14.07.2008 - 1.08.2008: development. Every day commit, every week report
 1st week: Testing
 2nd week: Implementing design, bugs fixing
 3d  week: Writing documentation
 4th week: Testing and bugs fixing
+ 4.08.2008 - 11.08.2008: bug fixing, code review, code refactoring,
improve documentation
+ 11.08.2008 - 18.08.2008: final release

* Communication

I am available for communication by email and/or by several internet
messengers(Skype: andriykushnarov; MSN: address@hidden). I
know that it is good idea for success deadline getting to write
reports on done work. Mentor can check my weekly reports and one will
know the status of the project. Besides weekly reports there will be
daily commits with comments on done work in this revision.

Best Regards
Andriy Kushnarov

reply via email to

[Prev in Thread] Current Thread [Next in Thread]