I require a simple php website form / cgi as detailed below.
* Web page 1 - Information Page with a link titles 'sign-up' (links to web page 2 below).
* Web page 2 (dynamic page) - Form where the user chooses what they want from 5 checkboxes (this loads dynamically from a mysql database). The database has items and sub-items with prices. The user will click on the next button to continue to Web page 3
* Web page 3 (dynamic page) - The options chosen from the previous page are displayed with available sub-items available for the main option (these main options and sub-options are in a 1 to many database relationship - if you don't know what this then please don't bid! These sub-options can be either check boxes, multiple sub-optnios can be chosen, or single options and are all loaded from the MySQL database on the server). On this page the prices will also be displayed and a total visible. The user clicks on the "Next" button to go to then next step - web page 4
* Web page 4 (dynamic page) - On this page is a summary of the items and sub-items the user had choosen from the previous pages. The user must type in the folllowing:
Fullname - 2 fields (minimum characters for First name / Last name = 2 alphabet characters a-z, A-Z). Once this control loosed focus, if the username field is empty, it is populated with a complete lower case version of the user’s first and lastname (no spaces).
Username – (must be unique and the webpage will need to advise the user if the username they have typed is already in use). Maximum username length is 24 alphabet / number characters (a-z, 0-9, NO UPPERCASE permitted or special / shifted keyboard characters such as shift+1 “!”).
Password – must be a minimum of 8 characters and contain at least 2 numbers of non a-z, A-Z keyboard characters. Only a-z, A-Z, 0-9 and !-) is permitted as valid password characters.
Postal Address - (6 fields) Unit / Street Number / Suburb / City / Region (aka State) / Country.
Contact Phone Numbers - (3 fields) Home / Work / Mobile (is optional)
Date of Birth - 3 fields, date / month / year (drop down combo boxes and the month field must be a value in the database but display as text eg: January, ... December). Year must be 4 digits eg: 1970.
Payment method - Options available are:
Credit card (via the PayPal payment gateway)
Automatic Payment (pay in advance)
There is a link on this page to the terms and conditions page (opens a new window with the terms and conditions).
The developer will need to assist in building the MySQL database from an existing MySQL database which will be provided (the DB is empty with 5 tables with sample data). Once the user has entered information into the required fields the user clicks on the next button to continue. At this time the account information is saved to the database. The customer's record now has a customer number (MySQL userid index's auto-increment / aka primary key id) the account is enabled at this time with the minimum plan with the expiry date set 14 days from the time the user clicked the Next button.
Web page 5 (dynamic page) - This is the user account summary page and the new user is welcomed. On this page it advises the user that they have a trail account and the trail account will expire in 14 days, (this number of days that new account will expire from, needs to be a global variable that the administrator can change from the administration login page).
Based on the previous page's payment option, the user can then click on a link to be re-directed to the PayPal payment gateway screen to instantly upgrade their account if they choose the credit card option. If they choose the automatic payment option, on this page is information regarding how to set-up an automatic payment and the user is advised the trail account will expire in 14 days.
The user can click on the Next button which takes them to their account page where they can change any details except their username. Changes to account information will produce an email or an audit trail that the administrator can view.
Other MySQL database information
Fields needs for each user account (see the database user table comments):
* Last Paid Date
* Paid Until Date
* Last Used Date
* Expired (True / False)
* Total Amount Paid
* Total Amount Used
* Last Payment Amount
* Plan Amount
* Traffic Amount this period
Other General Comment
The use of variables throughout the project is required for each of the named components (fields) so the names of the field on the webpage can be easily changed.
The website will also require a login page where the user can change all their options they require. Obviously they will only be able to change their own account records, eg password, address, contact email, phone numbers.
The website will also require the ability for an administrator to log in where they can change ALL user fields in the database except the primary keys or fields in table relationships. A query is available only to users whom are in the administrators group which will produce a report on the number or users with a summary of their account plans, contact email address, etc.
A query / report where users whom accounts will expire within 7 days is displayed.
I believe this project is not a difficult one but some good planning is needed by the winner and it would be relatively easy for a knowledgeable person or someone whom is skilled with R.A.D tools (such as Codecharge Studio maybe)?
I would prefer to see this system working on someone else’s (eg: your own) internet server prior to attempting to get it working on my server but you will need to assist if problems arise (fyi: I’m pretty good at getting this to install when problems pop up though, just may need some advise if it’s a major and I can’t figure out how to get it working).
If you have any questions do not hesitate to send me a post. There is no such thing as a stupid question.
PS: I do not like being mucked around but reward for people whom take initiative and produce good work.