An Auction Portal where people can buy (immediately or through auction), sell and get updates about their product status. Preventive measures for auction sniping and Real time synchronization during auction and notifications for users are provided. Web2py framework and mysql database is used.
1. User Manual
How- to-use Auction Portal
● User Login and registration
1. On opening the website it asks for your user name and password.
2. If you have an account provide the required details and Login .
3. If you do not have an account you need to register.
4. Click on the link provided in order to register.
5. To complete registration process you need to give details like
a. First name,Last name, webmail ID,password,phone no.,address ,DOB.
6. Enter Valid details and Click ‘Register’.
7. Once you are done with the registration process you can login to access the site.
8. Once a User Logs in his userid is stored in a session variable (Session.id) which makes the system
further actions of the user easier to manage.
9. The registration page appears as follows.
3. ● Viewing and editing user profile information
1. To View your profile hover your mouse over the Profile menu. A drop down list appears
2. Click on the view profile submenu to view your profile information.
3. To edit your profile click on the edit profile submenu.
4. Change the required details and Click Edit button . The details will be changed accordingly.
4. 5. The same submenu helps you to ‘Change your Password’.
6. Enter the new password you want to opt for and click ‘Change Password’. Then password will be
updated accordingly.
● Viewing an Item
Here there two ways for an user to view an item
1. Hover your mouse over Items menu and click ‘Show all Items’ submenu.
2. Here you can Filter the items by Active Auctions as well as Item Categories.
3. After filtering the items by the way you want to filter click on the item link corresponding to the items
image to view it.
4. The other way to view an item is by searching it .
5. Click on the “Search for Items” submenu to start searching for an it.
6. You can search an either by it’s Title or Description or both.
8. ● View Category
1. This page helps the user to know the categories of items available and to know which category his item
belongs to .
2. To view a category hover your mouse on ‘Category’ menu and click on ‘View Category’ submenu.
● Adding , Editing, Removing Category
Prerequisite:
You should be the administrator of the website to do the above actions.
The admin credentials are
webmail id: admin@iitg.ernet.in
password: admin
1. To add a category hover on the category menu and click ‘Add Category’ Submenu.
2. Enter the category name and category description and click ‘Add category’ to successfully add a
category. Make sure you enter valid details.
10. 7. To remove a category hover on the category menu and click ‘Remove Category’ Submenu.
8. Enter the category name you wish to edit.You can also the list of available categories in the Categories
box below.
9. After entering the name of the category click Remove Category’ to successfully remove the category
from the database.
Adding an item
Prerequisites for adding an item
1. Item Name :Name of the item
2. Categories/Tags :Categories to add to the item.
3. Description :Describing the item
4. Image :An image of the item
5. Auction Price :The start price for the auction, that is the user has to start with minimum
of this amount to auction for this item.
6. End of date auction :The date when you want the auction to end, that is the auction is alive
until this date.
7. Time on that date :The exact time on that day you want the auction to end.
8. Buy now price :With this price the user can buy the item before the end date itself.
13. ● Whenever an item is added to our database the words present in the title and the description are
indexed and added to our inverted index table which allows other people to search for it and get the
results quickly and efficiently.
Bidding an Item
Prerequisites for bidding on an item :
● Price with which you wish to bid that item : Enter the price (or move the sliding bar) and click on
bid
Note:
1. Now , when an item is live ( on auction) a registered user can search for all the live items and bid on
them.
2. We click on an item to go to its page to bid on it.
3. Keep a watch on the Notifications tab in the top right corner.If it glows green and says ‘New
Notifications’ it means some activity has just occurred in which you are interested in.Click on it to see
the details on your tray feed.
4. The current maximum price and leading user id will be dynamically updated on item page.
5. Make sure you bid with an amount greater than the Current Maximum Price.
6. Then , you will be leading in the bid.
7. You can always bid the Buy Now Price to immediately win the auction and get the item.
Putting an expired item back to auction
Prerequisites
● You should be the owner of the item and nobody has bid and bought the item.
1. Click on the reauction button after the time expires, then you can edit the attributes of the item.(
generally targeted for a better sale )
14.
15. Brief Description Of Each Table:
Table Name Purpose
Auction Stores all auction related information
Bid Stores all the bids made on a particular item
Belongs This is a mapping between items and
categories
Category Contains information about the various
categories
Items Stores information related to a given item
User User information is stored in this table
Trade Feed All messages displayed to a user in his trade
feed are stored here
Notifications This table contains timestamps used to
indicate notifications
Titlewords Reverse indexed table of title words for the
search engine
Descriptionwords Reverse indexed table of description words
for the search engine
Note: The tables: trade_feed, notifications, titlewords and descriptionwords are not a part
of the ER diagram. These are additional tables used to improve user experience and are a
part of the software.
16.
17.
18. Constraints :
Primary Keys:
Attribute - Table
a userid - User
b item_id - Items
c cat_id - Category
d id - Trade_feed
Foreign Keys:
Attribute - Table - References
a item_id - Auction - Items (items_id)
b userid - Auction - User (userid)
c userid - Bid - User (userid)
d item_id - Bid - Items (items_id)
e cat_id - Belongs - Category (cat_id)
f item_id - Belongs - Items (items_id)
g userid - Notification - User (userid)
h userid - Trade_feed - User (userid)
Unique Indexes:
Attribute - Table
a email_id - User
b phone_number - User
c cat_name - Category
Constraints:
Attribute - Table - Type
a email_id - User - *@iitg.ernet.in or *@iitg.ac.in
b DOB - User - Valid Date
c min_cost - Auction - must be +ve.
d buy_now_cost - Auction - greater than min_cost.
e duration - Auction - must be +ve.
f bid_count - Bid - must be +ve integer.
g bid_price - Bid - greater than min_price.
h bid_time - Bid - belong to (start_time,end_time).
i user_id - Bid - Bid.user_id != Auction.user_id
j current_max_price - Items - equal to max(bid_price).
k ref_links - Items - valid URL
19. Search Engine:
Indexing
of
an
item’s
information:
Whenever an item is added to our database the words present in the title and the
description are indexed and added to our inverted index table.
Entries in this inverted index table corresponding to the descriptions are as follows :
Sample (1,2,5);(5,6,10);(10,1,30)
Meaning:
The
word
“sample”
is
found
in
the
descriptions
of
items
1,5
and
10.
Each tuple (x,y,z) has the following meaning:
x - Item ID
y - Number
of
occurrences
of
“sample”
z - Total length of the description.
A similar table is constructed for the titles of each item.
Indexing algorithm:
The
algorithm
used
during
indexing
the
item’s
description
(indexing
the
title
words
is
similar) is as follows:
1.
Obtain
the
item’s
description.
2. Remove all punctuation from the description.
3. Convert everything to lowercase.
4. Now, remove all stop words from this string.
5. Now, we are going to process the words that are left over.
6. For each word, obtain the corresponding stemmed word and add both the words to the
inverted index table.
An important point to note is that the commit operation is performed after all words have
been indexed or else the process would take time.
20. Ranking algorithm:
Whenever the user hits a search query, I remove punctuation, convert everything to
lowercase and remove stop words from this query. The following algorithm is used :
For each word:
1. Obtained the stemmed version of the word.
2. Use the inverted index table to obtain the result for the actual word and stemmed word.
Assign points to each item for a given word using the following formula :
Score = base_points * stemming_factor * 2 * (1 - (0.5 _
))
base_points = 100 for title words
= 95 for description words
stemming factor = length of stemmed word / length of actual word.
This factor is taken to be 1 when the actual words are used.
After obtaining the final score, the list is sorted with the item with the highest score placed
on top.