CS 683 Emerging Technologies

Fall Semester, 2006

Assignment 2

Assignment Index

© 2006, All Rights Reserved, SDSU & Roger Whitney

 San Diego State University -- This page last updated 10/5/06

Restaurant System

Due October 12

Modified October 5 by adding What to turn in

You will build using Django 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.

What to turn in

You are to turn in all the files needed to run your assignment. I have django, python, and sqlite installed so I do not need those files, just all the files that you created for this assignment. This includes but not limited to all model.py, view.py, settings.py, urls.py, and template files. If you are using sqlite as your database also include the data file. If you are using MySql provide a dump of your database. At this time I do not have the ability to handle PostgreSQL with Django. If you are using PostgreSQL contact me.

Also include a README.txt 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:

     python manage.py

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 Django 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 2 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.