Xiao Zhou CS491 Project report Abstract: Using application software without its being locally installed is one of the major advantages over traditional desktop application. That is one of the major reasons why I have chosen to implement my project, Product Management System by employing several web based technologies. Product Management System was intended to interact with eBay through eBay’s open APIs for business efficiency. In this document, I describe how I was aspired to start this project, the architecture of the system, the implementation of the system and current status of the project. I. Introduction: EBay took its initiative to offer an online auction system a few years ago. Since its appearance, it has been growing for several years. Although its growth has slowed down a little, it has become an indefensible site for consumers looking for good deals. With all these consumers generating traffics to eBay, many businesses have established their presences on eBay to meet the demands of the consumers. Thus, eBay has become not only an auction site where consumers compete with each other, but also a site full of competitions among sellers on eBay. How efficient a business runs is one of the major factors that affect the growth of these eBay-dependent sellers. To sell on eBay basically involves creating listings to be displayed on eBay site, and getting the information about successful listings from eBay site. Besides that, there are a lot of rules created by eBay to interact with both eBay and consumers through eBay’s auction system. Those rules have essentially become a culture on eBay. Product Management System is a web based solution trying to bridge the gap between its user, an eBay seller, procarparts.com, and eBay buyers. Procarparts.com started its eBay selling business of car accessories a few years ago. They started growing as eBay grew. Product Management System includes an inventory system, sale system, order system and customer systems. The inventory system allows its users to manage their inventories. It should allow its users to enter and delete new product, and it should enable its users to edit information about the products. The sale system enables its users efficiently pushing their listings to eBay and manages the listings on eBay. It should allow its users to create eBay list and reuse its already-created listing for future launching. It should enable its user to quickly change certain listing elements such prices. The order system allows manage successful listing, and it involves the monetary materials with eBay and with eBay buyers. It should able to get information about successful listing, and it should allow its users to inform and remind customers to make their payments. As for the payments, it should be able to collect payments through the use of credit card system, paypal and so on. The customer management system manages relationship between its users and customers. One of the obvious features that it must have is to efficiently manage feedbacks that rate participators of eBay. The feedbacks essentially show credibility of eBay participator. The project so far only implements some features of the inventory system and the sale system. The rest of this document will describe overall technologies used and details on implemented features. II. Technological Background: Product Management System uses several web based technologies as detailed below: Microsoft ASP.NET Ajax.NET (http://ajax.net/) C# programming Language Microsoft Internet Information Server Microsoft SQL server 2000 Microsoft Visual Studio.NET 2003 Microsoft Windows Operating System eBay SOAP API and SDK API HTMLArea 3.0 (http://www.htmlarea.com/) The reasons why web based technologies chosen to implement the solution is that it can be used without installation. Nowadays, most desktop computers use Microsoft windows operation system, and the system comes with the web browser, internet explorer bundled. Thus, most computers can be used to access Product Management System. Besides that, with web-browser access system, it can be accessed remotely. Microsoft ASP.NET is used to create user interface pages that run on web browsers. However, ASP.NET is a server-side technology. The system will seem to be noticeably discrete because every new information needs to request the server to seen a different page. Although broad-band bandwidth makes it a little better, there is still flicker of pages. In order to lessen this effect, Ajax.NET is used to enable to process some information in the background. Ajax stands for Asynchronous JavaScript and XML. It is not a new technology. It is a web development technique for creating interactive web applications using a combination of: XHTML (or HTML) and CSS for marking up and styling information The Document Object Model manipulated through JavaScript to dynamically display and interact with the information presented The XMLHttpRequest object to exchange data asynchronously with the web server. (XML is commonly used, although any format will work, including preformatted HTML, plain text, JSON and even EBML). In some Ajax frameworks and in some situations, an IFrame object is used instead of the XMLHttpRequest object to exchange data with the web server. (http://en.wikipedia.org/wiki/AJAX) Ajax.NET (http://ajax.net/) is a library that makes use of XMLHttpRequest. After configuration, it allows server side class methods that have “[Ajax.AjaxMethod]” on top of them to be called from client side JavaScript. These are the Asynchronous calls. These Asynchronous calls enable fewer pages refreshing. C# programming languages, Microsoft Internet Information Server, Microsoft SQL server 2000, Microsoft Visual Studio.NET 2003 and Microsoft Windows Operating System are chosen because they belong to the same family, so they are more likely to work coherently. HTMLArea 3.0 (http://www.htmlarea.com/) is used in the sale system to provide a web-browser enabled HTML editor. eBay SOAP API and SDK API are needed to talk to eBay’s system. The reasons why both are needed is that sometimes one works better over the other. That is sometimes something that does not work with SOAP, but it may work well using SDK API. SDK API is another wrapper on top of SOAP according to eBay’s documentation. III. System Architecture: Product Management System employs three-tier system architecture. Presentation layer contains interface logic. For Product Management System, ASP.NET and JavaScript are used to generate the pages that are visible to users. Business layer contains business rules that basically process information from the presentation layer and evoke some actions that interact with the users in front of the presentation layers or with the eBay’s system and return information to its local database or the presentation layer. For Product Management System, this layer contains classes implemented in C#. Data Layer contains logic that has direct access to its local database and manipulates the database. For Product Management System, this layer contains stored procedures that directly manipulate the database. IV. Design and Implementation Details: Design and implementation of the inventory system. 1. ASP.NET page is created to display the inventories items stored in the database, and GUI page also allows users to add new product, delete new product and edit product. Ajax.NET is used to update car models of a car make that selected by users through a dropdown list. A JavaScript calls behind-scene a method of the business logic layer class, InventorySystem to get a list car models for the car make, and it populates the car model dropdown list without refreshing the page. However, all other actions require post-back requests for new pages. 2. InventorySystem is a C# class that implements business layer logic, it process the data from the users and interact with its local database to update or retrieve data. It relies on stored procedures to manipulate the database. 3. A set of stored procedures are used to access the database. These stored procedures serve as data layer logic. Design and implementation of the sale system. 1. The sale system provides the functionalities of creating and saving eBay listing, quick updating of some elements of saved listings and fast launching listing and canceling ongoing eBay Auctions. More Ajax.NET concept is used in the design and implementation of the sale system. There is one main ASP.NET page for the sale system. Each of the functionalities of the sale systems is done through JavaScript asynchronous calls to get data through the business layer class, SaleSystem. 2. SaleSystem is the class implemented in C# sits at the business layer for the sale system. It receives requests from the JavaScript asynchronous request and return either data or an HTML control. By sending back HTML control, the business layer appears to mix with the presentation layer, but the trade-off is the instant responsiveness for users. The SaleSystem interacts with eBay system to send or receive data. 3. Again, stored procedures are used for the data layer for manipulating the local database.. V. GUI Inventory system Sale system VI. Database Tables Used by the implemented systems: 1. ad_listing ad_id int primary key product int auction_category varchar(50) auction_title varchar(255) auction_description varchar(255) auction_format varchar(50) sell_quantity int sell_price money buy_price money sell_duration int imagePath varchar(255) ad_template int 2. carInfo car_id int primary car_maker int car_model varchar(50) 3. carMakers car_maker_id int primary key car_maker_name varchar(50) 4. ebayCategories ebayCategoryVersion varchar(50) primary updateTime ebayCategoryCount 5. ebayCategoriesDetails ebayCategoryID varchar(50) primary key ebayCategoryParentID ebayIsLeafCategory ebayCategoryLevel 6. ebayLayout layoutID int primary key layoutName varchar(50) 7. ebayThemes themeID int primary key themeName varchar(50) themeGroupID varchar(50) 8. ebayOpenAuctions ebayItemNumber varchar(50) primary key StartDate Datetime endDate Datetime product int 9. productCategory category_id int primary key category_name varchar(50) 10. products product_sku int primary key product_description varchar(255) available_quantity int product_name varchar(50) product_category int car int product_image varchar(255) VII. Performance Evaluation: Most of the functionalities work on both internet explorer and firefox 1.0. However, the display on firefox looks bad. Thus there is some incompatible CSS style elements used. Some of the JavaScript codes do not run, so there must be some incompatible JavaScript codes. The part implemented with JavaScript asynchronous calls seems to response faster. VIII. Conclusion and Future works: EBay has become a place where potential customers exist for many businesses. Systems to work with eBay’s system are indispensable for many businesses. Whether nor not for money or experience, I will continue with developing the rest of the system and improve on the existing ones by adding more functionalities.