Ext. And Fix Of Php App
The job is an extension and update of existing invitation application.
1. Properties of existing application:
Relatively small and simple PHP application using PEAR (DB_Table, DB, Quickform)
Single-user admin interface allows admin to add members and send invitations (total: 4 masks)
Users receive mails and can sign up/deny event by clicking on a link (1 mask)
Specialties: Object oriented coded; Instance configured using a file;
2. Job scope:
I) Extension of application for multiple users
II) Fixing of currently existing minor bugs and adding a few features in application
III) Migration of libraries
3. Technical environment
Language: PHP 5.2+, Database: MySql, OS: Linux; Usage of additional libraries ok but must be discussed with buyer before
4. Deliverable
Fully tested PHP source code and database SQL queries – if bugs detected by buyer: need to be fixed within 1 week
5. Timeframe for delivery
Max 4 weeks from order (faster appreciated)
6. Details of work
I) Extension of application for multiple users
One instance of the application does currently only support a single admin user – the purpose of this task is to make it support multiple users.
This requires:
1. Creation of a user sign-up mechanism
a) Sign up page (Entry fields: Username, mail-address, password)
• Check whether username already used, quality of password (min 8 char)
b) E-Mail Confirmation Link
• Contains confirmation link and link for false usage (“I have not signed up with this mail address: Click here to delete account with this mail address)
• User can put in data before doing confirmation! Clicking on confirmation does enable user to have public profiles
c) Confirmation Page (after E-Mail Verification: logged in)
2. Replace currently existing file based configuration file with a web based version
Every user, who signed up is able to edit all the settings
3. Migrate current interface (4 masks) to multiple user support
II) Fixing of currently existing minor bugs in application
Minor bugs
– One configuration entry (color coding) does not work
– Duration interface in “New Event” should be improved
– Interface of “Event Participation” needs clean-up
Features
– Invited persons are able to edit their own personal data (make existing admin interface accessible in restricted way)
– It should become possible to reactivate cancelled events
– Welcome mail for added participants
III) Migration of libraries
– PEAR QuickForm is currently used -> should be migrated to QuickForm2
– PEAR DB currently used -> should be migrated to MDB2
7. Overall Requirements

1.All input data needs to be strictly validated (already done now – just preserve that)
2. Avoid using platform dependent functions/libraries

3. Current style of coding and structuring should be preserved; Code the application nicely – avoid ugly code! Use functions and object orientation; Code needs to be kept easily extendible and maintainable!
4. Store only password hash and compare hash
5. All functions need to be properly documented (described parameters/return values/purpose – like done in the existing app)