CSc 221 Fall 2005 Final Project

Added 12.6.2005: The start of class is much too late; I wasn't thinking. Here are the due times.

  221G 221P
Before this time, 1 point bonus 2 PM 11AM
By this time, OK 4 PM 1 PM
After this time, 2 point penalty 4 PM 1 PM
After the start of class, 4 point penalty    

Final added requirements:

  1. Provide a button marked Book Count. Pressing it brings up a dialog box showing the number of books in the database. User clicks OK to dismiss. (Google for SQL functions, or SQL count.)
  2. Provide a button marked Average Price, which does what you think it would.
  3. Look up how to format dates, and show only the year of publication. Also format the price with a dollar sign. (Google for SQL output format, or the like.)
  4. Find a way to pop up a box (or something) that shows the synopsis for a book in a readable format. Ideally, there would be a button next to each title in any listing that says Synopsis. If that is too hard, provide a pulldown list of all titles and let the user select from that.
  5. Make the font size in the basic displays 2 points larger than whatever it is now. I'm guessing that it's 10 points, so you should make it 12. You can experiment to find the current size, or maybe look up the default.

Finally, here are a couple of things you can do, for no extra credit, if you are enjoying this and want to dress it up.

  1. Put a button over each column of the display of all books that comes up at launch, labeled Sort. Pressing it makes your programs re-run the SQL query with the appropriate "order by" clause added. But don't try to sort on the synopsis!
  2. Displays with lots of lines are hard to read. Put a light green background behind each group of three lines. (This may be hard. Maybe easier to put a green background behind every other line.)
  3. Ideally, all printing should be in the same larger font requested in 4. above. Even better, the text in the space for a user query should be another 2 points larger than that. (We've had trouble reading that.)

Added 11.30.2005: Here are  the deliverables:

  1. By the start of class on Monday Dec 5 (221G) or Tues Dec 6 (221P): A prototype. Anything that works, based on the sample data in the MySQL database of books from my page here, and producing any user output in some sort of GUI. 30% of project grade.
  2. By the start of class on Monday Dec 12 (221G) or Tues Dec 13 (221P): A PowerPoint file emailed to me, giving the results of user testing. 10% of project grade.
  3. By the start of class on Weds Dec 14 (221G) or Thurs Dec 15 (221P). Your final project, demonstrated to the class, with your PowerPoint show. 50% for completeness and usability of project; 10% on your presentation. All members of a team must speak in the presentation. Plan on having about eight minutes total, including switchover time between teams.

The bonus or penalty is out of the 25 point total for the project. As I write this, you all have 170+ hours. You can budget your time to be done a good hour before the class. Remember: I have work to do after you submit your project, before anybody can begin presenting. If I get projects after the start of class, it's chaos. If you do that, I don't promise you will be able to present at all.

NOTE: Any team that submits only a final program loses half the project points; those students cannot possibly get an A. There is a reason for all this.

The requirements for your final version will be discussed in class on Weds Nov 30 and Thurs Dec 1, and put in writing over the weekend. Note: this "assignment creep," under which you have to get started without knowing exactly what the final form will be, is absolutely intentional. This is your life, for both CS majors and CpE majors. I'm giving you a first look at it. Yes, I'm busy and I'm lazy--but I always do it this way, for reasons to be discusssed.

Added 11.27.2005: There is a page of input. We'll talk about how to get it into the database.

Added 11.26.2005: It definitely is possible to insert a graphic file or a music file in a database, but the techniques would require more time that we  have. Delete that part of the assignment.

Added 11.26.2005: Forget about getting data about books. Too little to be learned for the effort. I'll put together a small set, which you may enhance if you wish.

Original Post.  The project will consist of a GUI interface to a database in MySQL. The subject is books and authors. The customer has not thought much about exact needs, but he's in a terrible hurry. We need to get a prototype running, to help him think.

All we know is that it's about his (and it is a he) interests in books and authors. Not much like Barnes & Noble, or the books database from the text. He wants, he thinks so far:

We'll have to see if we can store a picture in a database. We could, but we won't.

Forget this. I'll assemble some data.

He is interested in 13 authors, as shown below. Oddly enough, we have 13 teams in the two sections. Each team is responsible for gathering the data on twice as many authors as there are team members. Your instructor will build a data set.

Here's a sample of the input:

FirstName LastName Title Pub date Publisher Category Price ISBN Synopsis
David Brin Startide Rising 

1984

Spectra Books Sci/Fi 2.95

055327418X

A space ship with a crew of dolphins--that have been "uplifted" in their evolutionary development along with all dolphins and chimpanzees--and one human must must flee the enemy Patrons and return to Earth with their gathered knowledge. The second book of the acclaimed "Uplift" series and the winner of both the 1983 Nebula and 1984 Hugo Awards.
                   

Here are the team/author assignments.

Two books per person: 2-person team gets 4 books, etc.  
Must have all the needed info: Synopsis, Cover picture  
       
221G Team 1 Ursula K. Le Guin SciFi/Fantasy
Team 2 David Brin SciFi   
Team 3 Arthur C. Clarke SciFi   
Team 4 J. R. R. Tolkien Fantasy  
Team 5 Jane Austin Novel  
221P Team 1 Sheri Tepper SciFi  
Team 2 Isak Dinesen Novel/Gothic
Team 3 Ralph Ellison Social criticism/Black Studies
Team 4 Mark Helprin Novel/Short Story
Team 5 Colleen McCullough Historical Novel
Team 6 Marge Piercy Novel  
Team 7 Diana Gabaldon Novel/Fantasy
Team 8 George Eliot Novel  

 

 Back to Dan McCracken's  Home Page