Færdiggjort

544656 Big Website Programming

Ganesh,

Below is text version of the project document. It will be easier to see the attached word version

===========================================

Project Overview

The live website for this project is located at http://www.bargainmargin.com. It is an ebay affiliate site. An exact copy of this website has been setup at [url removed, login to view] for the winner of this project to work on. Both the live and the copy website are hosted in the same server. The server is a linux server running Apache, MySql and PHP 5.3.4. The winning programmer will be given access to the copy website through CPanel. The winner of this project should have these skills:

1. Excellent PHP skills.

2. Excellent MySql skills.

3. Ability to consume web services with great ease. You will need to send XML requests to ebay and receive, process and format XML responses. Please see the section titled Ebay Web Services & Documentation in the uploaded project description for more information about api calls used by my website.

4. Good CSS knowledge.

5. Ability to efficiently use unix egrep or grep commands to search within files related to this project.

Please see the uploaded word document for full description of this project.

Ebay Web Services & Documentaion

The website uses Ebay FindItemsAdvanced (HTTP GET method, I prefer that you use the XML request/response method) to find items related to a search phrase and FindPopularSearches (XML request/response method) to find popular search phrases. Please use the unix egrep command to find the php files containing these api calls.

Modify The Current Search Phrases Table

The path to the current database table that stores the search phrases that are used to create related searches on search result pages is technolo_Master.Keywords. This table needs the following modifications:

1. The Category field must contain the name of the best Level 1 category (L1 category) for each search phrase. Consider the All Categories as the level 0 category.

2. The categoryID field must contain the category id of the level 1 category (L1 category) that best match the search phrase.

3. Add another column after the categoryID column. Name this column as leafCategory. This column must contain the leaf category that best match the search phrase.

4. Add another column after the leafCategory column, Name this column as leafCategoryID. This column must contain the leaf category ID.

5. Add another column after the wordct column. Name this column as length. This column must contain the length of the search phrase.

6. Add another column after the length column. Name this column as ScriptID. Every script that enters a search phrase into the Keyword field of this table must fill in its script ID in this field. Please see the section titled Script ID Assignment.

7. All php scripts that enter a search phrase into the Keyword field of this table must fill all fields in this table except the associatedkeywords field.

8. The programmer should create a one-time script that the administrator can use to enter missing information into the database that the live web site is currently using. The script needs to modify the current Keywords table, adding the new fields and overwriting the Category, categoryID, leafCategory, leafCategoryID and length fields with the appropriate information. The length field should contain the length of the search phrase. Allow the Administrator to run this script slowly (using PHP usleep() function) so that it does not consume all the memory, processor and ebay API calls allowed per day. This script should also fill the ScriptID field according to the following rules:

1. If the search phrase in the keyword field contains a numeric character, enter keywordsmaker in the ScriptID field.

2. If the search phrase in the keyword field does not contain any numeric character, enter entryform in the ScriptID field.

The programmer will need to use the ebay GetSuggestedCategories API call to get category information related to each search phrase in this table. The first category returned by this call is the leaf category. An ebay item can only be listed in a leaf category.

Script ID Assignment

Currently the scripts that populate the Keyword field of the Keywords database table with search phrases are /__Admin/cron/[url removed, login to view], /__Admin/[url removed, login to view] and /__Admin/keywordsmaker.php. These scripts should write their script IDs in the ScriptID field of the Kewords table according to the following rules:

1. /__Admin/cron/[url removed, login to view] should write collector in the ScriptID field.

2. /__Admin/[url removed, login to view] should write entryform in the ScriptID field.

3. /__Admin/[url removed, login to view] should write keywordsmaker in the ScripID field.

Any other script that you create in this project that populate the Keyword field of the Keywords table with search phrases should write its script ID as its name without the .php file extension. For example, if the script's name is [url removed, login to view], that script should enter googlekeywords as it's script ID.

Live and Offline Database Search Phrases Tables

There is currently one database table for search phrases. The path to this database table is technolo_Master.Keywords. Some of the search phrases in this table are not really needed to be picked up by the search engine. For example, there are many variants for Mp3 Player like sony mp3 player, used mp3 player, sony used mp3 player, toshiba used mp3 player and so on. A variant of a search phrase has more word counts than the search phrase.

The programmer need to device an administrative script that creates another table (call it LiveKeywords table) that contains a subset of the search phrases in the Keywords table. This LiveKeywords table will be used by the live web site (instead of the current Keywords table) to generate related searches links. So remove the full text search index from the Keywords table and create the same full text search index on the LiveKeywords table.

The Keywords table will stay in the database and will be considered the master keywords table. All administrative scripts (located at /__Admin directory) that enter search phrases into the database should write to this table. If a search result page for a search phrase does not return an item from ebay, that search phrase will be purged (removed) from this table.

Below are the steps the programmer should follow to copy search phrases records from the Keywords table to the Livekeywords table. Note that these steps need to be applied recursively for each search phrase

1. If the search phrase returns more than 150 hits and has variants that return 10 or more hits, then ignore the search phrase and include those variants as long as the length for each variant search phrase does not exceed the maximum characters threshold (including spaces). Please see the section titled Other Requirements for more information about the maximum characters threshold.

2. Repeat step 1 with each variant search phrase that has a length less than the maximum characters threshold (including spaces). Please see the section titled Other Requirements for more information about the maximum characters threshold.

3. If the search phrase returns 150 or less hits and the length of the search phrase does not exceed the maximum characters threshold (including spaces), then ignore all other variants and include that search phrase as long as it does not exceed the maximum characters threshold (including spaces). Please see the section titled Other Requirements for more information about the maximum characters threshold.

4. If the search phrase has no variant, then include that search phrase as long as it does not exceed the maximum characters threshold (including spaces). Please see the section titled Other Requirements for more information about the maximum characters threshold.

5. The last step: enter all search phrases in the assciatedkeywords column of the LiveKeywords table in the keyword column of the LiveKeywords table, if they are not already included there.

When searching the database for variants please do not use the (%%) wild cards. For example: if the search phrase is Hi Performance, your query should not be the following:

SELECT * FROM `Keywords` WHERE `Keyword` LIKE '%hi%' AND `Keyword` LIKE '%performance%'

The above query will result in unexpected variants such as “Performance Machine”

you would rather send a query that return “Hi” (as whole word) AND “Performance” (as a whole word).

When creating this script the programmer should consider this:

1. The administrator needs to run this script manually from time to time. As keywords table grow, a new fresh copy of the LiveKeywords table needs to be created.

2. This script should track its progress. If the server get rebooted while this script is in the middle of its job, it should be able to continue where it left.

3. The Keywords table and the LiveKeywords table must be linked with foreign keys. If a record is deleted from the Keywords table (the master keywords table), it must be instantly deleted from the LiveKeywords table.

4. This script can be paced (using php usleep() function) so that it does not consume a lot of memory or processor time. The administrator should be able to cause this script to run slowly.

5. No matter how long this script runs to create a new fresh copy of the LiveKeywords table, it should not interrupt the live web site. The programmer need to find a way to smoothly switch between the old copy of the LiveKeywords table and the new fresh copy. Currently the live web site includes databases names and passwords by including the /__Admin/config/[url removed, login to view] file

6. When this script successfully finishes creating the LiveKeywords table, it must send an email notice to the administrator.

7. When this script successfully finishes switching the live web site to the new refreshed copy of the LiveKeywords table, it must send an email notice to the administrator.

After finishing creating the LiveKeywords table, the script should create a separate table for each level 1 category (L1 category). Each L1 category table is named by its category ID and is built with fulltext index on the keyword field. After creating all L1 categories search phrases tables, your script should send an email to the administrator.

Rules for Populating Database Tables with Search Phrases:

Please Centralize the rules for populating database tables with search phrases, so that all scripts that write to the keyword field in the Keywords database table use the same rules.

1. Avoid populating the Keywords database table with single-word search phrases. Currently the scripts that populate the Keywords database with search phrases are /__Admin/cron/[url removed, login to view], /__Admin/[url removed, login to view], and /__Admin/[url removed, login to view]

2. Dots (.): A dot is turned into a space character unless it is sandwitched between two digits such as in 1.23 or [url removed, login to view], In which case the dot is immediately preceded and followed by a digit.

3. Comma (,): If it is not part of a numeric word such as 1,000 or 1,64, then turn it into a space character before processing the string for database recording.

4. Colon (:): Colon can exist in the search phrase only if it is part of a numeric word such as 1:48 or 1:50. Otherwise, a colon is turned into a space character.

5. single quote: single quote are turned into a space character before processing the search phrase for recording in the database, unless the single quote appears as possessive apostrophe as in women's or men's.

6. double quote: These should be removed.

7. Ampersand (&):Your code need to make sure that there is always a space character to the left and right of the ampersand character.

8. Percent Sign (%): If it does not appear at the end of a numeric word such as 1.6% or 100% then turn it into a space character before processing the search phrase.

9. Dollar Sign ($): If it does not appear at the start of a numeric word such as $100 or $1.60 or $1,000, then turn it into a space before processing the search phrase.

10. Accented Characters: Words with accented characters are processed normally just like any other word.

11. Any character other than the above characters that is not an alphabet or a digit or that is not a an accented alphabetic character is turned into a space character before processing the search phrase for database recording

12. Redundant space characters may result from turning any one of characters above into a space character. Remove any redundant space characters from the search phrase before recording it in the database.

13. Before entering the search phrase in the database, make sure it contains an alphabetic word that is at least 3-letter long. An alphabetical word is a word that is composed of regular or accented alphabets only.

14. For each search phrase, lower case all words and then upper case first character of each word.

15. When entering a search phrase or a popular searche in a database table, the code should try to find if there is a similar entry with the same word count and the same words in any order is already in the database. For example, if the script is trying to enter Sony Mp3 Player in the keyword field of the Keywords table and that table has a record for Mp3 Player Sony, the script should not enter Sony Mp3 Player ino that table. An exception to this rule is [url removed, login to view] script, which should always override the old entry with the new one.

16. Any script that writes to the keyword field of the Keywords database table should write its script id in the appropriate field.

17. Any script that writes to the keyword field of the Keywords database table should calculate the length of the search phrase and enter it into the appropriate field.

Search Result Pages:

1. All single word search result pages requested by Google, Bing, MSN or Yahoo bots should be redirected to the home page. Single word search result pages are pages like /[url removed, login to view], /[url removed, login to view] and /2011.html. You will need to check the agent field in the http request header to see if the requester is a search engine bot. Search engine bots you should consider are: Google, Bing, MSN and Yahoo. After implementing this requirement, please test your work by clicking on the following link /Computers_&_Networking/2235.html.

2. Disable creation of single word links in the related searches returned in search result pages. Currently the code breaks out the search phrase into single words and create single word link for each word in the related searches part of the page (the scrolling ticker to the right of the search box). To see an example of single-word links created automatically in related searches field, click here.

3. If a valid search result page is requested by a search engine bot such as bingbot or googlebot, the code should check the keyword field of the LiveKeywords table for an exact (case sensitive) phrase match with the same word counts in same order in the main database. If no match is found, then 301 redirect the search engine to the home page. Do not use the header location php function because it uses 302 redirect.

4. Move the buy now button and the price to the far right side of the <div id="itemListing-div-1b"

5. Allow the Item title to wrap down to the second line if the item title is more than 50 characters long

6. Add a third column to the left of the div that contains the item listings. In the html source code, item listings should appear before this div. See the section titled The Left Side Column for more information about this requirement.

7. Move the related searches to the left column and strip off the deprecated marquee.tag. See the section titled The Left Side Column for more details about the related searches div.

8. When the script looks for related searches, strip off all numeric words that does not contain a dot (.) (I mean numeric not alphanumeric words) from the search phrase before querying the LiveKeywords database table for related searches. Also, strip off all alphabetic words that are 2 or less characters long (I mean alphabetic not alphanumeric) before querying the database for related searches. Do not strip off any alphanumeric word from the search phrase. If the search phrase is 1998 Audi Tr A4 2.4 you would query the LiveKeywords table for Audi A4 2.4 to get related searches.

9. When the script looks for related searches, it must check to see if the search phrase is associated with an L1 category in the LiveKeywords database table. If the search phrase is assciated with an L1 category, the script should query the L1 keywords table for that L1 category. If the search phrase is not associated with an L1 category, then the script should query the LiveKeywords database table for related searches. Please see the section titled Live and Offline Database Search Phrases Tables.

10. Use the the current script (I believe it is /[url removed, login to view]) to populate the left column with useful filtering tools such as Category Information, Price Range, Item Condition (new or used) and Buying Format. These filering tools will be handled by another script similar to /results.php. See the section titled as Search Result Filtering Tools for more details about this requirement.

11. As you scroll down a long search result page, the div that contains the skyscraper banner on the right column should stay fixed on the screen.

12. Remove the drop down category menu from the search box. Remove all the related code from all php files unless they are needed by a script in the /__Amin folder. Users will use the filtering tools on the left side column as explained in the section titled as Search Result Filtering Tools.

Search Result Filtering Tools

These tools reside in the left side column and will be processed by a script similar to the script that generates the current search result pages. However, The programmer should use the current script (/[url removed, login to view]) that generate the search result pages to populate the left column with theses filtering [url removed, login to view] filtering tools appear as either hyperlinks, check boxes or radial buttons, but they should not be picked up by the search engine at this time. The section headings on the left side column for these filtering tools are:

1. Category Information

2. Price Range

3. Item Condition (used, new, not specified)

4. Buying Format (Auction, Buy Now)

When a user clicks on any of these hyperlinks, check boxes or a radial buttons, the browser sends a request for a page with the new or updated GET parameters. The user should be able to clear any or all of these filtering parameters.

To give you a live example of how these filtering tools work on ebay website, please go to this search result page about shoes and do the following:

1. Hover with your mouse on some of the category links on the left side. Note that GET parameters (on the browser status bar) change as you move from one link to another.

2. Go to the section that is headed as Condition and click on Used. Now the search result is showing only used items. Now click on the link that says clear. Now the search result pages is showing all items, used or new.

3. Click on two or more of the refinements (other than filtering by category). Note that you have the option to clear any of these refinements by clicking on the the adjacent clear link. You also have the option to clear all refinements by clicking on the Clear all refinements link right below the category list. Use Javascript to implement these clearing functions.

1. Category Information: You will use the ebay GetSuggestedCategories API call to get category information related to the search phrase. You would list only level 1 (top level) categories. The root category All Categories is level 0. For example, if you go to this search result page about camera, you would list the categories with bold text only. When a user click on any of these category links, make sure that the active category has some CSS effect to help the user know which category he/she is looking at. Make sure that , when a user clicks on a category link to filter results, the other category links are still visible.

2. Price Range: Please see the ebay findItemsAdvanced API Call refernce for more detail about filtering by MinPrice and MaxPrice.

3. Item Condition: Please see the ebay findItemsAdvanced API Call refernce for more detail about filtering by Condition.

4. Buying Format: Please see the ebay findItemsAdvanced API Call refernce for more detail about filtering by ListingType

Retrieving the Full set of eBay USA Categories

Create a script to retrieve the full set of eBay categories. The programmer for this project needs to use ebay GetCategories API Call to retrieve the full set of eBay USA categories and store it in a local database. Please see Retrieving the Category Hierarchy for a Site for more information. The programmer needs to make sure that the server is making this call once a day to check for any change in the category version as explained in Maintaining Category Data. If the category version changes, the server should automatically update the local database with the new category hierarchy data.

The programmer need to pace this script (using PHP usleep() function) so that it does not consume a lot of memory or processor time. Place this script in the /__Admin/cron/ folder. The administrator will run this script from the command line as root using a cron tab job.

This script should also track its progress. If the server get rebooted while this script is in the middle of its job, it should be able to continue where it left.

Develop a Script for Categories Pages

This script can be the same script that processes the search filtering tools on the left column. However , unlike the filtering tools, I want category pages to be picked up by the search engine. The main goal for creating these pages is to get rid of the sitemap pages in the future. Here is an example of an overloaded sitemap page . This script will use the locally stored eBay category tree to find children, grandchildren, parent and grand parents of any specified category.

Imagine that there is a link that says Categories on the top of each search result page. Imagine that the destination url for that link is /[url removed, login to view], which can be the same script that processes the filtering tools on the left hand side column. In the future, this /[url removed, login to view] will replace [url removed, login to view] which is the script that currently processes search result pages and related searches links.

1. If you click on the Categories link, this should lead you to a page that lists all level 1 categories and their direct children. Examples of level 1 categories are Antiques, Art, Baby and Books. The page will have the same information as ebay All Categories page. Level 1 categories will not be hyperlinked. There will be no left side or right side columns, only the middle column which will expand its width across the screen. Do not forget to use javascript to create the more links. The header and footer of the page will stay the same as in any search result page.

2. The title and description of the page will be List of All Categories.

3. Now if you click on a level 2 category such as Antiquites, This should lead you to a page similar to a regular search result page. The page will list all items in the Antiquites category. On the right side column, you will show the google skyscraper banner. On the left side column you will list all level 3 or direct children of Antiquites category in the Category Information section. The script should get these level 3 categories from the local database and the developer should not use the CategoryParent API call to retrieve child categories for the Antiquites category. These level 3 categories will be hyperlinked but should not be picked up by the search engine. These level 3 categories links will be processed by the same script that processes the other filtering tools. Note that if Antiquites category is a leaf category, there will be no Category Information on the the left side column. Following that will be all the other filtering tools. At the bottom of the left side column you will list the top 75 popular searches of the Antiquites category in the Related Searches section of the left side column. When you click on any of these popular searches, you should get a search result page processed by the current /[url removed, login to view] script. You will apply this to all level 2 categories.

4. The title and the description for the Antiquites category page will be Browse Antiquites and Save!

5. Your script should get the top 75 popular searches from a special database table that you are going to create in this project. This database table lists all level 1 and level 2 categories and their most popular searches and should not contain any one-word search phrase. These popular searches should also be available in the Keywords database table. Your script should also follow step 1 throught 15 of the section tiltled Rules for Populating Database Tables with Search Phrases. When the script finishes building the table, it should send an email to the administrator. Site administrators should be able to refresh this table from time to time from the private administrative area at /__Admin folder. You would use ebay FindPopularSearches API call to populate this special database table. Please have a look at /__Admin/cron/[url removed, login to view] for more information on how to search ebay for popular searches.

I imagine this database table for the popular searches to look something like this

Keyword Code

phrase

L1_L2_Cat_ID

L1

L2

Cat

Name

Type

Foreign_Key

00001

Dvd Player

293

L1

00958

00002

Dvd Player

3270

L2

00958

00003

Dvd Player

32852

L2

00958

The fields of this special popular searches table from left to right are

1. Keyword_Code

2. Search_Phrase

3. L1_L2_Cat_ID

4. L1_L2_Cat_Name

5. Level: (This field is either L1 or L2)

6. Foreign_Key

The foreign key field links this database table to the Keyowrds table. In other words, popular search phrases must exist in the master search phrases table before being recorded in this special table. Note also that there can be more than one record for the same search phrase (but only one for each category).

Modify the Home Page

1. Level 1 category links on the left side column should be processed by the same script that generates category pages. Allow search engines to pick up these level 1 category links. Clicking on any of these category links should take the user to a page that lists all level 2 categories of that level 1 category. The page should have the same layout as a regular search result page. The skyscraper on the right column, all level 2 category links in the middle column. On the left side column you will display only the Related Searches section (no other filtering tools) . On the related searches section you will display the top 75 popular searches for the corresponding level 1 category. Your script should extract these popular searches from special database as explained in point 5 of the section titled Develop a Script for Categories Pages. Please see the section titled The Left Side Column for more information about the Related Searches section.

2. Remove the popular searches section and all the graphics and links associated with them.

3. Add 6 more categories to the popular categories section. Clicking on any graphics in this section should lead you to a level 1 category page. As explained in number 1.

4. Move the navigation links at the top of the page to the far right and place them on the same line as the logo. These links are in the div with id="navMainRight”.

5. Remove any google adsense code from the home page and all templates related to the home page.

Redirect URLs That Result in Duplicate Meta Descriptions:

1. Old links that show category in the url. An example of this is /Cars,_Boats,_Vehicles_&_Parts/[url removed, login to view]

2. Links with characters that are not an alphabet or an accented alphabet or a digit. The following two links result in duplicates: /Stealth"[url removed, login to view] /Stealth_Camera_Bag.html. Here is another two duplicates: /Karaoke_Machines.html. /Karaoke_Machines_ _Memorex.html. The double space characters between Machines and Memorex resulted in trunking the phrase to only Karaoke [url removed, login to view] problem can be solved by implementing point 3 as described in the section titled Search Result Pages.

3. Links with redundant space characters. The following two links result in duplicates: /[url removed, login to view] /Jvc___Everio_2.0mp.html. This problem can be solved by implementing point 3 as described in the section titled Search Result Pages.

4. Links that contain forward slashes. /220uf/[url removed, login to view] /3300uf/35v.html.

5. Links with pagination information

6. Links that does not end with html or htm. These are links like /tickets which is the same as /ti.html. Unless these links are true subdirectories, they should generate a useful error message to user and the appopriate HTTP error code to the search engine.

7. Links that contain invalid directory should generate a useful error message to user and the appopriate HTTP error code. An example of such links is /invalid_directory/[url removed, login to view]

Improve Search Result Page Appearance:

1. Add a third column to the left of the div id=”results-col1” that contains the item listings. Name the div that contains this column as div with id=”results-col3”. This div is hosted in the div with id=”results”. In the html source code, div id=”results-col1” should appear before the div with id=”results-col3” and div with id=”results-col2”. Please see the section titled as The Left Side Column for more information about this requirement.

2. Move the buy now button and the price to the far right side of the div id="itemListing-div-1b”

3. Allow the Item title to wrap down to the second line if the item title is more than 50 characters long.

4. Move the related searches to the left column (div with id=”results-col3”) and strip off the deprecated marquee.tag. See the section titled The Left Side Column for more details about the related searches div.

5. Remove absolute positioning for div id=”header-results”

6. Let the div that contains the search box to span the whole width of the div id=”wrapper-results”. Give this div a color so that it appears as a strip. The search box should always stay in the center of this div.

7. Stretch the search box so that the width of the search box is equal or close the the width of the div that contains the item listings (div id=”results-col1).

8. If the page is being accessed by a user and not a search engine and the search result page returns no results from ebay, then do not show the div id=”results-col2” or div id=”results-col3 in the html source code. Both the header and footer of the page and the width of the div that contains the search box should contract to the width of div id=”results-col1”. Do not print the search phrase as h1. Return a message similar to “No item found for ‘sony black mp3 player' please try another search or check your spelling”. Test your work by clicking here

9. Div id=”results-col1” should have a minimum height

10. Increase the top and bottom margin for the pagination div.

11. Add some margin below the bottom of the footer div.

12. when there are results and no pagination links, there should be enough margin between the last item div and the footer div.

13. Search result pages will have only googleSkyscraper adsense banner. There will be no googleLeaderboard adsense banner. Please remove div id=”googleLeaderboard” and all related code (from all php files including [url removed, login to view]).

General Appearace Issues:

1. Set minimum height to div that contain the main content of any page. For example if you look at the page /[url removed, login to view] you will notice that the footer of the page is very close to the header.

2. Remove the css absolute positioning from header div in pages like /[url removed, login to view] /[url removed, login to view] /aboutus.php. This will cause div id=”navMainRight” to float to the right of the div id=”navMainWrapper”

3. Return a well formated customized page with useful and helpful information when the server has to send http 404 not found message. You would return code 404 not found only when a user or a search engine tries to access an invalid directory or an invalid page. An example of an invalid directory is /Shopping or /Shopping/ An example of an invalid page is /[url removed, login to view] (which should be /[url removed, login to view])

4. Increase the height of the search box. Also increase the size of the font within the search box.

5. Pages that does not show 3 columns layout, such as [url removed, login to view], should have the width of div with id=”results-col1” or less. The width of header and footer of such pages should shrink accordingly.

The Left Side Column;

From top to bottom, the left side column of a search result page will contain the following sections:

1. Category Information: This section contains level 1 category links information for a regular search result page as explained in the section titled Search Result Filtering Tools, or level 3 category links in level 2 category pages as explained in the section titled Develop a Script for Categories Pages. Note that this section will not show up in a level 2 category page if the category is a leaf category.

2. Price Range

3. Item Condition (used, new, not specified)

4. Buying Format (Auction, Buy Now)

5. Related Searches: This section contains related searches for a regular search result page or popular searches if the page is a level 2 category page (as explained in the section titled Develop a Script for Categories Pages). This section also shows popular searches for level 1 category pages as explained in point 1 of the section titled Modify the Home Page. Show only a few related searches and allow the user to click on a javascript more link to see the rest. Control the height of the div that contains these related searches. So when a user click on the more link, this div will show a scroll bar on the right side of the div. The user has to scroll down to see all the related searches.

Purging the Current Main Database:

Create a php script that the administrator can run as root from the command line to update or purge the current Keywords database table from unwanted entries created by the previous code. The script need to do the following:

1. Remove entries that have repeated words in the keyword field. For example Sony DVD Sony and Washington Dc Dc and Snow Tires Snow should be removed from the database. Please dump these repeated words to text file. I need to review this text file.

2. Remove entries that does not have an alphabetical word that is at least 3-letter long. An alphabetical word is a word that is composed of regular or accented alphabets only.

3. There are entries in the database where one space character was inserted before the possessive apostrophe. These entries need to be updated by removing that space character. For example, Women ‘s need to be Women‘s.

4. There are entries in the database where an ampersand (&) has been entered as (&), these should be turned back to & .

5. Apply the rules explained in the section titled Rules for Populating the Main Database. For example, any plus (+) sign should be turned to a space character.

6. For each search phrase, if there is another entry with the same words (in any order) and the same word counts, do the following:

1. If the search phrase does not contain a digit, preserve the first entry and remove the rest

2. If the search phrase contains a digit, preserve the last one and remove the rest.

1. For each search phrase, lower case all words and then upper case first character of each word.

Modify The Current Sitemap

The following apply to /[url removed, login to view] script

1. This script should query the LiveKeywords table instead of querying the Keywords table.

2. Modify the database query such that each page returns entries from the database that have word count of 3 or more and have no numeric or alphanumeric word and have hits between 25 and 150

3. Modify the pagination such that if you are viewing /[url removed, login to view], you will see only five pagination links: First Previous 128 Next Last

4. When a page like this one return no result, that page should be redirected to the home page. I think this is already implemented.

5. Remove duplicates. For example /[url removed, login to view] and /[url removed, login to view] are the same page. We do not want the search engine to pick up two links for the same page.

6. Solve the short description problem. I suggest that description should be the first search phrase returned on the page.

7. Solve the short title problem. I suggest that you add the first search phrase returned on a page to the current title of the page

8. Inflate the content of /private.php. This page is currently very thin. I suggest that you extract from the database 100 entries that does not contain numeric or alphanumeric words and have word counts of 3 or more and have hits between 10 and 20 and no word less than 3 letters long.

Improve Keywordmaker Script:

The /__Admin/[url removed, login to view] script needs fixes that improve the quality of the concatenated search phrases generated by this script. The programmer for this project needs to do the following:

1. Make sure that this script is following the centralized rules for populating database tables with search phrases as described in the section titled Rules for Populating Database Tables with Search Phrases.

2. The script should remove any duplicates from the extracted string. For example if the extracted string is lexus 2011 , the prefix is lexus and the suffix is bumper, then the concatenated search phrase should be Lexus 2011 Bumper. The current script would generate Lexus Lexus 2011 Bumper.

3. When searching for numeric strings, pay attention to hyphens if they are present in the middle of a numeric string. For example: if the item title is lexus 2011-2012 bumper, the prefix is lexus and the suffix is bumper, this should result in only one concatenated search phrase, which is Lexus 2011 2012 Bumper. The script should not generate Lexus 2011 Bumber and Lexus 2012 Bumper.

4. When searching for numeric strings, pay attention to the dot (.), if it is present in the middle of the numeric string. For example, if you are looking to extract numeric strings and the item title contains 1.3, then the concatenated search phrase should include 1.3 .

5. When searching for numeric strings, pay attention to the comma (,), if it is present in the middle of the numeric srting. For example, if the item title contains 1,000,000 then the concatenated string should contain 1,000,000.

6. Change the minimum length of an alphanumeric word to search for to 3 instead of 2.

7. An acceptable non-hyphened alphanumeric word must contain at least two consecutive letters or digits ( consider the dot as a digit), but no more than 3 consecutive letters. For example A2B is not an acceptable alphanumeric word, but 2AB and B96 and [url removed, login to view] are acceptable non-hyphened alphanumeric words. Honda2001 is not an acceptable non-hyphened alphanumeric word because the word contains more than 3 consecutive letters.

8. An acceptable hyphened alphanumeric string must contain two consecutive letters (but no more than 3 consecutive letters) or digits. For example, 1-2-A2-3 is not acceptable hyphened alphanumeric string but 111-2-A2-3 or 1-2-AA-3 are acceptable hyphened alphanumeric strings. Honda-2001 is not acceptable hyphened alphanumeric string because the string contains more than 3 consecutive letters.

9. This script must write its script id each time it enters a search phrase into the database.

10. This script overrides old entries with new search phrases as explained in point 15 of the section titled Rules for Populating Database Tables with Search Phrases.

11. Add a Test Item Title Contains: field right below the category field. When this field has a text in it, the script must ignore the text in the Item Title Contains: field. When the user press the process button, the script will process the test item title instead of processing item titles returned by querying ebay. This field helps me test the working of this script.

Modify the [url removed, login to view] script

This script resides in the /__Admin/cron/ directory. This script writes to the [url removed, login to view] table. Make sure that this script follows the rules explained in the section titled Rules for Populating Database Tables with Search Phrases when writing search phrases to the Keywords table.

Modify the [url removed, login to view] Script

This script resides in the /__Admin/ directory. Make sure that the search phrase entered in the Association Keyword field is in the Keyword field of the Keywords table. If it is not already there, make sure the script enters that search phrase in the keyword field of the Keywords table before proceeding. The script should also follow the rules explained in the section titled Rules for Populating Database Tables with Search Phrases.

Referrer Processing:

Change the current referrer processing behavior, because it is considered cloaking by Google. This is probably what caused google to ban my website from appearing on the search results. Rather than changing the content of the original page being accessed by users from search engines without their knowledge, use a pop-up window that gives users the option to be redirected to a customized search result page or to go to the original page. If the customized search result page does not return any item from ebay, then give the user a link back to the original page. The current code checks for referrer strings for users coming from Google, Bing, or Yahoo.

The popup window you design for this purpose should look like the sitepoint popup window that you receive when you visit this link (click on the sitepoint link). The search phrase that you are going to extract from the referer string should appear as is in bold text at the top of the popup window. Below that bold text you can write any text urging the user to click here for a fast and accurate result. The user can escape the popup window by clicking outside of the popup box or by clicking the No, Thank You link at the bottom of the popup window.

To see how the current script generates a customized search result page on the live web site for users coming from a search engine like google or yahoo, please follow these steps:

1. Open firefox browser and download and install the Modify Headers add-on.

2. From firefox menu select tools => modify headers => options => always on => ok

3. On modify headers window select action => modify. On the first box enter referer, on the second box enter [url removed, login to view] then press the add button.

4. Now go to any page on my web website that returns more than 150 items from ebay. I suggest that you Go to [url removed, login to view]

5. Note that the content of the page is showing car seats not DVDs. Also note that the address of the page is still /dvd.html.

6. Note that reloading the page will not return the page to its original content. To see the original content of the page you have to place the mouse cursor on the address bar and press enter.

The developer/programmer needs to follow these guidelines:

1. The pop-up window should pop up as soon as the page starts loading.

2. The text on the pop-up window should mention the exact original search phrase that the user entered on Google, Bing, MSN, or Yahoo, without any modification.

3. If the user chooses to be redirected to the customized search result page, that customized search result page should not have the same url or title as the original page. For example, if the user has been sent by google to /[url removed, login to view] and the search phrase in the google referer string is Sony Mp3 Player, the customized search result page would be /Sony_Mp3_Player.html.

4. If the customized search result page does not return any item from ebay, give the user the option to go back to the original search result page. Do not print the search phrase as h1. Instead, return a message like: your search for …... did not match any item. Click here to go back to the original page.

5. If the user chooses to go to the original search result page or escapes the pop-up window, at the very top of the original search result page, the user should always see the original search phrase and have the option to click on it to go to the customized search result page. The div that contains the user's original search phrase should stay on the top of the screen as the user scrolls down the page.

6. Allow the administrator to disable referrer processing. Add this functionality to the /__Admin/[url removed, login to view] file.

7. The current code fails to find the right position where the search strings lie. Consider the following referer string:

[url removed, login to view]

If you try to access the page /[url removed, login to view] on my website with your browser sending the referer string above, you will not receive a customized search result page for car seats. However, if your browser sends the following http referer string:

[url removed, login to view]

You will get the right customized page for car seats. This is a regular expression pattern problem. The programmer needs to fix this problem.

1. The current code fails to process referer strings with hyphened words in the search phrase if the two sides of the hyphen are not the same type. Consider the referer string below:

[url removed, login to view]

If you try to access the page /[url removed, login to view], the referer string above will result in a search result for car2000. The right search result is a search result for car 2000. The programmer needs to fix this problem.

1. The programmer should apply character rules 2 through 14 (as explained in the section titled Rules for Populating Database Tables with Search Phrases) to the search string before querying ebay for search results.

2. The programmer needs to add MSN to the list of search engines to be considered for referrer processing.

Other Requirements

1. Make sure to validate the xhtml code

2. You might merge the functionality of the existing /[url removed, login to view] and the new /[url removed, login to view]

3. With comments, you can describe exactly how a script behaves so that you can pick it up instantly later on.

4. Make sure that redirects are permanent. Use 301 redirects.

5. Add the following to the settings table. The administrator should be able to change these settings through the /__Admin/[url removed, login to view] script.

1. The threshold to invoke the referrer processing code. Currently this threshold is 150, which means the referrer string will be processed if the search result page returns more than 150 hits.

2. The threshold to skip pagination at the bottom of the search result page. Currently this threshold is set to 150. That means if the search result page returns 150 or less hits, there will be no pagination at the botton and all items will be listed in the same page.

3. The Maximum Characters Threshold (including spaces). This is needed when copying search phrase from the keywords table to the LiveKeywords table as explained in the section titled Live and Offline Database Search Phrases Tables.

4. Collector Category ID: The [url removed, login to view] script will use this to return popular searches within that category. The default categrory for the [url removed, login to view] script is all categrories.

5. Variant Script Usleep Microseconds: Please see the section titled Live and Offline Database Search Phrases Tables for more information.

6. Category Hierarchy Script Usleep Micoseconds: Please see the section titled Retrieving the Full set of eBay USA Categories for more information.

Evner: Lidt af Hvert, PHP

Se mere: your pop art, your email address is invalid, you can do what you want to do, yahoo work from home ban, yahoo website templates, yahoo rest services, yahoo rest api, yahoo original programming, xml use case, xml programming needed, xml developer tools, www working from home data entry, www html programming com, www google com web developer, www car key programmer com, writing your name in the snow, writing with ease level 2, writing with ease level 1, writing with ease, writing the result at table, writing the alphabet, writing thank you letters, writing thank you cards, writing text with key words, writing spaces

Om arbejdsgiveren:
( 26 bedømmelser ) Chicago, United States

Projekt ID: #2290598

Tildelt til:

ganeshbaid

lets do it

$3700 USD in 30 dage
(202 bedømmelser)
6.9