BUILD YOUR OWN GROCERY STORE. Build a virtual grocery store, a la www.homegrocer.com. These are the steps: 1. Model entities such as products, departments, brands, etc... Create a schema and an E/R diagram representing your database. Create useful and meaningful relationships between the relations (for example one relation is between products and brands). Add additional entities that may help your virtual grocery attract customers, such as event-types (parties, Thanksgiving, Christmas) with appropriate relationshiops, or others that may help you survive in this competitive business (one additional entity set is enough; see the note below). Also describe any constraints you want to have on your schema (referential integrity constraints, functional dependencies, etc...). 2. Transform your E/R diagram into SQL syntax and create a "real" database in SQL Server using your model. 3. Populate your database. You can either use "synthetic" data or download a list of "real" groceries and populate your database. You should have at least 25 products in the database. If you choose to use synthetic data, please use meaningful names and entries. 4. Create another table(s) storing customers along with their VISA and M/C card numbers and other relevant information. Create meaningful relationships between customers and products, departments, etc... 5. Create a WEB portal to your database. Groceries should be able to be found by name, department, or other means you think are appropriate (e.g. by event-type). Once a search has completed, a web page should be created summarizing the results of the search. Also for each grocery in the summary, there is a link that the user can click on to expand the information about the respective product. 6. Add e-commerce functionality to your website. Let a user be able to buy his/her desired grocery from your database. Each buyer needs to be able to order his grocery list, and fill in his credit card information. (Do not worry about security issues). Store the credit card information in your database, so that a user does not have to enter this information more than once. However, allow the user to modify his credit card information. Keep track of how many items of each prodcut you currently have in stock: when a customer buys an item, that number has to decrease. 7. Export your database in XML. Design an XML DTD that contains elements and/or attributes corresponding to the entities in your database, such as products, departments, brands, etc, and write a program that exports the entire database into an XML format with that DTD. BONUS: If a user is searching for a grocery you don't have in stock, your database application should go to www.homegrocer.com, retrieve that item and charge 10% more. For example the following searches for orange juice: www.homegrocer.com/shop/search.jml?text=orange+juice - Charge 10% more than what homegrocer charges. NOTE: Do not make your schema too complex: the entire project should contain at most 3-4 entity sets plus relationships.