We have a website which is not officially launched yet. It is a reverse service auction (like Rentacoder) for painters. The website is an implementation of an open source script written in PHP using a mySQL database. We require customization with a number of straightforward modifications to the site ranging from Paypal IPN integration, to timezone offset of the datestamp by 18 hours, through to google maps integration.
## Deliverables
The existing website [[login to view URL]][1] is a skinned version of the relatively unchanged original php script “PHP Freelance?? (see attached zip file). We need the following changes made to the script/current website:
**Paypal Integration:**
There is already paypal integration, however this is not working correctly. We want to adjust the existing catch script listening for returned variables from paypal on postback, to use Paypals IPN. Also posted variables from the site to Paypal need to specify the currency set in the config (NZD$ instead of USD$).
**Create time offset:**
Set a variable constant of 18 Hours in the config then adjust all time functions in the script to allow for this 18 Hour offset. The site is hosted in a different timezone to where it is used.
**Change Terminology:**
Change all references in the website from “bid?? to “quote??. This includes allowance for plurals such as “bidded?? and “bidding??.
**Address Selection:**
Add address as another input in the “create project?? form. The address will be comprised of a Text field to capture *STREET NAME & NUMBER*, then three drop down boxes for *REGION, DISTRICT, CITY/TOWN/SUBURB.* Each drop down box will be a child of the parent one before and will need to refine child results as a parent is selected. This can be done either via postback or ajax. All address info needs to be taken from a mySQL table. The data will be supplied to you in a sql file with 3 tables, each with an ID and parent ID.
** **
**Google Maps:**
Integrate Google Maps into the website so if an address match is found in a search in Google Maps it will show as an imbedded Google map in the project details page.
**Monitor Contact Details:**
Posting contact details is not allowed under the website terms and conditions. We need the website to perform a check on submit to try and detect if a user places contact details in any user input field (project brief, message board, portfolio, etc). This will need to check for email addresses and phone numbers. It will need to test as many scenarios as possible for instance not just “.[login to view URL]? but “dot co dot nz?? and “dot [login to view URL]? etc etc. Phone numbers will need to check for “021?? and “zero two one?? and “oh too won?? etc etc. If contact details are detected it needs to warn the user that “*It appears you have entered contact details. This is in breach of the terms of using this website and can result in suspension of your account and loss of any account balance. If this is incorrect please continue by clicking here*??
** **
**Image Support:**
Painters can currently upload gif images into their portfolio. This needs to be extended to allow uploading of jpeg images. Additionally image support needs to be added to projects created by clients so that they can upload photos when they create a project, and these will be displayed on the project details page.
**Bids & Comments:**
An active project displays current bids and comments. This needs to be changed so that only the client (project creator) can see these when logged in.
**Prepay Restrictions:**
The website works on a prepay basis. A user’s account becomes suspended after (x) number of days (set in config) when in negative credit. This is open to abuse as painters can win projects, get contact details and abandon their account when it is in negative. We want to make reduced functionality instantly for users whose account is in negative credit. Specifically, when a client accepts a painters bid (change to quote) the painter gets emailed the contact details of the client. This needs to be changed so that the painter gets emailed to tell them they have won the work and visit the website for contact details. When they get to the website, they will not be able to get the contact details without adding credit to their account. Similarly clients can not get contact details without being in credit. This way we can encourage painters/clients to stay in credit.
**Remove Payment Functionality.**
Take out all payment buttons in the website except “deposit?? Comment out all payment functionality in the code except “deposit related functions??. We will not be offering escrow services at this stage, and client/painter payments will be done offline. The model for the website is predominantly top up your account to pay for commissions charged.