~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1.0. Design, Functionality and Integration Requirements:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(a) WC3 Compliant (Example: )
(c) Written with a *.php file suffix
(b) Design must be in HTML and not written using Apache web server echo " "; format and contain the following conventional structure:
(d) Design should contain the following meta tags:
(e) Will contain three default pop-up window sizes:
250 x 250
320 x 320
260 x 580
Note: Service Buyer is open to additional and/or alternative sizes necessary to accommodate pop-ups
(f) Admin notification compatibility the moment someone types a single character into a text field within a pop-up window.
(g) Administrative console must be integrated into OSC Admin console and have the ability to easily view the following information:
Popup Inventory:
- Active Popups (By Title)
- Inactive/Available Popups (By Title)
Popup Activity/Performance Metrics:
- Most Used Popup (Total hits, Last hit Date/Time, Hits per IP)
- Least Used Popup (Total hits, Last hit Date/Time, Hits per IP)
(h) Administrative console must be integrated into OSC Admin console and have the ability to:
- Activate/deactivate pop-up windows on an individual basis by date as depicted in the following example:
Start Date: [ 11/25/2006 ]
Stop Date: [ 12/25/2006 ]
- Select and/or enter an individual’s email address to manually suppress pop-up's on a case-by-case basis.
- Ability to enter a specific time when pop-up windows should open and close
- Ability to dynamically generate a small message at the bottom of the pop-up window (whose formatting is controlled by CSS) telling viewers
the pop-up window will close in xx seconds... with countdown functionality...
- Ability to create new data tables to enable site administrator to add additional data elements to all pop-up windows in the future.
(i) Customers Tab in OSC:
Currently contains: First Name | Last Name | Account Created | Referred By |
Needs: Pop-up Window Usage History
(j) Intelligent Popup Presentation & Suppression:
- Tell Us How You Found Us: Suppress on a per-visitor basis ONLY IF VISITOR HAS ALREADY PROVIDED THIS INFORMATION using a combination of IP Logging
and Cookies
- Register Today Popup: Suppress on a per-visitor basis ONLY IF VISITOR REGISTERS using a combination of IP Logging and Cookies, or isn't already
a registered user.
- Sign-up For Monthly Newsletter: Suppress on a per-visitor basis ONLY IF VISITOR HAS ALREADY SIGNED-UP FOR OUR NEWSLETTER using a combination of
IP Logging and Cookies and cross-validation both in OSC's "customers_newsletter" table an in a separate data table which Service Provider will
create called "noncustomers_newsletter".
(k) Bot and Form Abuse Protection:
- Must be able to detect rapid submissions from a single IP address and alert administrator of possible malicious activity
- Must be able to perform two-factor email address authentication, the first which will involve using a script to be installed/configured by
Service Provider similar to the following example. The second level of authentication will involve using a script to be
written/installed/configured by Service Provider that queries the domain/email server to which the email addresses used by purported registrants
has allegedly been sent from.
Email Authentication Example:
function check_email_address($email) {
// First, we check that there's one @ symbol, and that the lengths are right
if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) {
// Email invalid because wrong number of characters in one section, or wrong number of @ symbols.
return false;
}
// Split it into sections to make life easier
$email_array = explode("@", $email);
$local_array = explode(".", $email_array[0]);
for ($i = 0; $i < sizeof($local_array); $i++) {
if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~.-]{0,63})|("[^(\|")]{0,62}"))$", $local_array[$i])) {
return false;
}
}
if (!ereg("^[?[0-9.]+]?$", $email_array[1])) { // Check if domain is IP. If not, it should be valid domain name
$domain_array = explode(".", $email_array[1]);
if (sizeof($domain_array) < 2) {
return false; // Not enough parts to domain
}
for ($i = 0; $i < sizeof($domain_array); $i++) {
if (!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$", $domain_array[$i])) {
return false;
}
}
}
return true;
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2.0. Default Pop-up Windows to Be Created:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Tell Us How You Found Us
::::::::::::::::::::::: First Name [ ] Last Name [ ]
::::::::::::::::::::::: Email [ ]
:::::::::::::::::::::::
::::::::::::::::::::::: How did you find us? [ ] *
:::::::::IMAGE::::::::: Other [ ]
::::::::::::::::::::::: Keyword/Phrase: [ ]
::::::::::::::::::::::: How easy was it to find Us? [ ] **
::::::::::::::::::::::: Sign up for monthly newsletter [ ]
:::::::::::::::::::::::
::::::::::::::::::::::: URL: Share our site with others and earn another 5% off your purchase
* This is a drop down field containing the following options: Google, Yahoo, MSN,
[login to view URL], AskJeeves, [login to view URL], DogPile, [login to view URL], AltaVista, Word of Mouth/Friend,
Other (If "Other" please specify)
** This is a drop down field containing the following options:
Extremely Easy
Somewhat Easy
Could Have Been Easier
Very Difficult
Note: Image must have the ability to embed a URL for redirect purposes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Register Today
::::::::::::::::::::::: First Name [ ] Last Name [ ]
::::::::::::::::::::::: Email [ ] Phone [ ]
::::::::::::::::::::::: Street Address [ ]
::::::::::::::::::::::: City [ ] State [ ] Zip Code [ ]
::::::::::::::::::::::: Password [ ] Confirm Password [ ]
:::::::::::::::::::::::
:::::::::IMAGE:::::::::
::::::::::::::::::::::: How did you find us? [ ] *
::::::::::::::::::::::: Other [ ]
::::::::::::::::::::::: Keyword/Phrase: [ ]
::::::::::::::::::::::: How easy was it to find Us? [ ] **
::::::::::::::::::::::: Sign up for monthly newsletter [ ]
::::::::::::::::::::::: Account Agreement [ ] ***
URL: Share our site with others and earn another 5% off your purchase
* This is a drop down field containing the following options: Google, Yahoo, MSN,
[login to view URL], AskJeeves, [login to view URL], DogPile, [login to view URL], AltaVista, Word of Mouth/Friend,
Other (If "Other" please specify)
** This is a drop down field containing the following options:
Extremely Easy
Somewhat Easy
Could Have Been Easier
Very Difficult
*** The checkbox must contain the ability for a user to hover over it and see the following
message: "Checking this box is required to create an account. Creating an account is
required to order products from our website. By checking this box you agree that you
have read, understand, and fully agree to all terms and conditions applicable to this
website, including our Shipping & Handling, Return Policy, Privacy & Security,
and Legal Information policies."
Note: Image must have the ability to embed a URL for redirect purposes.
Important Requirements:
1. Must possess functionality to enable perfect integration with all database tables and
settings within our OSC-based store.
2. Must provide administrative notification each time someone registers.
3. Must not formally register anyone until administrator has received a confirmation from
registrant that a live human did is in fact responsible for registering. Separate data
table is required called "pending_registrations"
4. All registrations not acknowledged by registrants must automatically receive an email
(Service Provider will build an HTML-friendly window in the admin console for
this message) 48 hours after registration.
5. All registrations not acknowledged by within 72 hours will receive a final email
designed to inform registrants their registration was deleted. Service Provider will
build an HTML-friendly window in the admin console for this message. Non-confirmed
registrants are then deleted from the "pending_registration" table.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sign-Up for Monthly Newsletter
::::::::::::::::::::::: First Name [ ] Last Name [ ]
::::::::::::::::::::::: Email [ ]
:::::::::::::::::::::::
::::::::IMAGE:::::::::: How did you find us? [ ] *
::::::::::::::::::::::: Other [ ]
::::::::::::::::::::::: Keyword/Phrase: [ ]
::::::::::::::::::::::: How easy was it to find Us? [ ] **
::::::::::::::::::::::: Sign up for monthly newsletter [ ]
URL: Share our site with others and earn another 5% off your purchase
* This is a drop down field containing the following options: Google, Yahoo, MSN,
[login to view URL], AskJeeves, [login to view URL], DogPile, [login to view URL], AltaVista, Word of Mouth/Friend,
Other (If "Other" please specify)
** This is a drop down field containing the following options:
Extremely Easy
Somewhat Easy
Could Have Been Easier
Very Difficult
Note: Image must have the ability to embed a URL for redirect purposes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
We also require templates for the following:
Specials 01
Specials 02
Specials 03
Specials 04
Specials 05
Christmas
Thanksgiving
Valentines Day
Labor Day
Independence Day
Memorial Day
Veteran's Day
New Year's Day
President's Day
Mother's Day
Father's Day
Easter
Birthday
Christening
Baptism
Summer
Fall
Winter
Spring
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::IMAGE::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Note: Image must have the ability to embed a URL for redirect purposes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Terms and Conditions:
1. Acceptance of this project also serves as full agreement and acceptance of the following terms and conditions:
(a) Service Provider certifies he/she possesses extensive knowledge and a universally acceptable level of professional experience associated with the
following:
* HTML
* CSS
* PHP
* mySQL
* OScommerce (All milestones, MS2.2 in particular)
* Javascript
* Database and web-based application security
2. Service Buyer agrees to perform a full and complete backup of Service Buyers entire online store to include all databases, configurations, files, images,
etc.
3. Service Buyer reserves the right to cancel this project, held harmless, and not be obligated to making payment for any services provided if:
(a) Service Provider fails to honor the timetable agreed upon for this project.
(b) Service Provider fails to respond to any/all e-mail communication, Instant Messages, and/or GAF messages sent by Service Buyer within 24 hours for each
instance.
(c) Service Provider fails to ensure the above referenced customized contribution does not work as it should or as it is intended.
(d) Adversely impacts any functionality, contributions, and/or core code within our online store.
(e) Service Provider misrepresents his/her true professional/technical capabilities.
(f) Service Provider warrants he/she will not install any code, application, scripts, or alterations to pre-existing code that could, will, or would
compromise website security.
4. Service Provider acknowledges he/she has adequate computer security in place to prevent the observation of or access to any and all information, files,
folders, usernames, passwords, login URL's, etc. associated with or applicable to this project.
5. Service Provider agrees to respond to all support requests made by Service Buyer within 4 hours for a period of 30 days after Service Buyer makes payment
for this project. Service Provider furthermore understands and agrees that support includes identifying and resolving any/all issues arising subsequent to
the payment.
6. Service Provider agrees to permanently discard and/or destroy all usernames and passwords provided by Service Buyer subsequent to the completion of this
project.
7. Service Provider agrees to consider requests made by Service Buyer to incorporate expanded functionality (for an additional fee) not yet realized by
Service Buyer provided Service Provider possess the technical ability to fulfill such requests.