CS 683 Emerging Technologies
Fall Semester, 2006
Assignment 4
© 2006, All Rights Reserved, SDSU & Roger Whitney
San Diego State University -- This page last updated 11/17/06
Restaurant System
Due Nov 28
Modified Nov 17 (Due date & What to turn in)
You will build using Ruby on Rails a web site for restaurants in San Diego County.
An unregistered user of the site can search for a restaurant by city, location, type of food and rating. Sample areas are: North Coastal, North Inland, Mission Valley, Collage area, East County, Central San Diego, and Downtown. Examples of types of food are: Indian, Thai, Vegetarian, Sea food and Mexican. For example a user may ask for all the Indian restaurants in the College area. They can also rate a restaurant on a scale of 1 to 5 and submit a review of (or comment about ) a restaurant. A restaurant has a name, street address, city, state, phone number, longitude and latitude. The longitude and latitude will be used when the web site integrates Google maps. When a user views a single restaurant they can see its name, street address, city, average rating, list of types of food it serves, and be able to see the restaurant's reviews (comments).
A registered user can add/edit restaurants and add more food types. When they edit a restaurant they can not change the rating of a restaurant or edit or remove any review.
A super user in addition to what a registered user can do can remove review of a restaurant, edit or remove a restaurant, add/edit/remove a location, edit/remove food types.
If you need access to a database please contact me via email.
What to turn in
You are to turn in all the files needed to run your assignment. I have rails and ruby installed so I do not need those files. I need all the files that you created for this assignment. If you used migrations with fixtures or are using the database on bismarck there is no need for a dump of your database. Otherwise provide a dump of just your development database.
Also include a README.txt file. (Please note that a .txt indicates a text file, which is not the same as a .doc file). This file should be maximum of one page and in most cases it should be much less than that. At the top of the file include your name. The file should contain the command used to start your server. It should also contain a list of urls that your project supports. For each url indicate the functionality supported by that url. Include a user name and password for each type of user that needs a password. Also include the name and type of food for one restaurant in your database. If there is any other information needed about your project include in this file. A read me file may look like
Author: Roger Whitney
Comm and to start server: In directory foo run:
ruby script/server
Supported Urls:
add user http://127.0.0.1:8000/aduser.html
search http://127.0.0.1:8000/search.html
modify/delete restaurant http://127.0.0.1:8000/admin/restaurants/
User name Password type
foo bar registered user
rat mat super user
Sample Data:
Restaurant - Sipz
Food Type - Vegetarian
How to Turn in your assignment
The preferred method is on a CD. The CD should have your name on the outside of the CD. At the top level of the file structure should be your README.txt file and the directory containing your rails project.
I realize that some students may not able to create a CD. In that case I will reluctantly accept assignments by email. The subject line of the email should be "CS 683 Assignment 4 turnin". The contents listed above for the CD version should be in a directory which is your last name. The directory and its contents should be compressed via zip, gzip or tar. In considering this option keep in mind that your email will examined by two email filters. As a result your email may be delayed for hours or days. More importantly the filters may remove attachments if they think it contains a virus. The filters sometimes mistake code for a virus. This can lead to problems. Given the size of the class my ability to handle special cases is greatly reduced. I prefer keep emailing assignments an option in special cases, but if it becomes a a problem I will be forced to prohibit emailing assignments in the future.