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. http://phpgroupware.org/soc#setup * 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 header.inc.php(user will have two links: "Download header.inc.php" and "View header.inc.php", 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 phpGroupWare. 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: [EMAIL PROTECTED]). 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 _______________________________________________ phpGroupWare-developers mailing list [email protected] http://lists.gnu.org/mailman/listinfo/phpgroupware-developers
