Project Narrative for CSC 791c: Agents and Multiagent Systems

This is the description of the main project for CSC 791c. The details may change over time, so please visit the online version again.

You are to build an information system for a company called WolfMall. WolfMall is building a large online shopping mall, which presents a number of stores selling a variety of goods in a unified information space. Here is some terminology defining different kinds of businesses along with some examples:

The difference between malls and shopping services is that usually the shopping services don't upload catalogs from the vendors, but just browse the information posted on-line by the vendors. Thus shopping services can reach to more vendors, but usually have a tougher time pulling the information from their sites and a tougher time offering aggregated purchasing. The difference between malls and merchants is that malls maintain the separate identities of the merchants they include. The above definitions are not exclusive - some sites combine these functionalities.

The following is a partial description of WolfMall's information needs, which must be satisfied by its information system. In doing your project, you will need to make additional assumptions as well as identify the potential inconsistencies and resolve them. Any reasonable assumptions are fine, but they must be documented in your reports. You can consult with the TA if you have questions about the assumptions.

You are the main technical team to design and implement the WolfMall system. What follow are a bunch of statements about WolfMall that you may glean from talking to its founders as well as potential investors and shoppers. They are not organized in any particular manner. In doing this project, you might discover that not every statement has to be explicitly captured in the database. Part of the modeling effort it to decide what to keep and what to discard.

For comparison and to understand the market, you should visit sites such as those listed above. Let me know of others that you find useful.

WolfMall's information systems has two main components. One supports the value added that WolfMall provides to its customers; the other supports WolfMall's own operations. The two components interact in a few places, specifically where staff are assigned to different roles. In this project, we will concentrate on the externally relevant component.

  1. A shopper must be registered to make a purchase. For each registered shopper, WolfMall records their name, email, and shipping address. The usual variety of demographic information is also kept if the shopper is willing to provide it. To make a purchase, each shopper must provide a credit card. Information on the credit cards can be stored by WolfMall to facilitate filling out forms on repeat visits.
  2. WolfMall constructs and remembers a model for each registered shopper. The model itself can be represented in a simple manner that support the above functions. The
  3. The models of shoppers are used to highlight for them the stores, products, brands, and shipping services that they prefer. These highlights are merely conveniences and do not restrict the actions the shopper can take. That is, a shopper may always override the suggestions made by the system based on the system's model of the shopper.
  4. The models of shoppers are also used to notify shoppers of specials in which they may be interested. Shoppers may disable or enable such notifications at any time.
  5. Models of shoppers can be ``learned'' in a simple manner by recording the preferred sites, stores, products, and shipping service for each shopper.
  6. WolfMall has a number of sites to customize the mall to different audiences. The sites are based on geographical regions (e.g., the Australian site sells ostrich eggs) or affinity groups (e.g., the cardiologists site offers free golf balls with every purchase).
  7. WolfMall does business with a number of merchants. For each of them, it offers store-fronts in one or more sites. A merchant can decide how many store-fronts it would like and in which sites. WolfMall has a price schedule based on the specific sites with discounts for more store-fronts.
  8. To open a store-front at WolfMall, the merchant has to provide catalog data to WolfMall. The catalog entries carry information on each product or product combination sold by the merchant. This information includes a name, a description, a price schedule for different quantities, and a shipping cost schedule for different regions of the world. In addition, a catalog entry may include an optional picture and an optional video clip. Catalog entries may include a certain number of product-specific features, such as resolution for scanners and screen size for television sets.
  9. WolfMall also allows a merchant to offer a limited number of special deals on bundles of goods, e.g., if you buy shoes then socks are 50% off.
  10. WolfMall assigns a merchant representative to every merchant.
  11. WolfMall assigns a marketing manager to every site.
  12. Marketing managers and merchant representatives can suggest that merchants offer certain kinds of specials. For example, they may advise apparel merchants to offer sales on neckties in the week before Fathers Day.
  13. WolfMall offers a point-based incentive program for shoppers, called WolfPoints. Shoppers accumulate WolfPoints for shopping at WolfMall. They can redeem WolfPoints for discounted merchandise at any WolfMall store.
  14. WolfMall audits merchants to require that they offer merchandise for WolfPoints at least to cover the WolfPoints that are generated from their sales. This ensures that some merchants aren't forced to subsidize others.

Scope

For your project, you should develop a general approach and then apply it on the domain of toys. Have at least three toy merchants in your implementation of the mall.

Tasks and Operations

The following are the four major kinds of tasks that need to be performed using your database. Each task potentially consists of a number of operations. An "operation" is something that corresponds to a separate action. For example, managing WolfPoints for customers is considered one task, which involves separate operations such as adding to the points, removing points for a purchase, and removing (forfeited) points when they expire.

Each student should write about the same number of application programs, but it is up to each team to decide how to allocate the overall effort.

  1. Manage customer accounts. Register a new customer, and take basic information from the customer. Take credit card numbers. Update information. Handle logins. After purchases, record what the customer bought and for how much.
  2. Browse and shop. Help a customer specify the desired products or merchants or brands. Search by keyword and price - the keyword search can be simplified for this project. Present descriptions, images, and video clips for products where available. Enable a shopper to select products for purchase by including them in a shopping cart. Enable a shopper to lay-away items from the shopping cart; bring up these items when the shopper visits again.
  3. Process purchases. Help a shopper finalize selection from the shopping cart. Help the shopper select a shipping service (give prices and delivery guarantees, respecting what kind of shipping the product may require). Help a shopper select a credit card to use. Record the activity to upload to credit card company.
  4. Manage WolfPoints. Create rewards account for a customer based on the marketing manager's specifications. Produce reward point reports to show how many WolfPoints are available and their expiration schedule. Increment WolfPoints when a cash purchase is made. Decrement WolfPoints when a purchase is made using WolfPoints. Handle forfeited WolfPoints by removing them from the account that forfeited them, and distributing them among other customers prorated by their level of purchases in the previous month.
In the above, some simplifications are legitimate. For example, we won't have a direct hookup with a credit card company, so you can fake it through a clean interface that is implement simply to record the desired charge in a file.