CSc 473 Fall 2005 Final Project
Added 12.2.2005: Here is what you need
for the prototype, which is now due Thursday, December
8. I said this to a fair number of teams in person; here it is for
everybody.
Get a version of HW4 running that uses MySQL.
That's it. Show you can put up a Web page, with forms fields, that get info from
a database. If it is convenient to use a HashMap also, that's fine. If you
have switched to PHP, that's fine too. Early reports from interviews suggest
that any concrete experience with these things is to your benefit. Get it on
your record.
Added 11.25.2005: Complete specs in
pieces as we go along, which is to prepare you for the Real World. Here is
a general outline.
And please see list of deliverables.
- We continue with the idea of presenting information about musicians, as in
HW2 and following.
- You are to have a home page with a design of your choosing, saying what
the site is about--but no nine pictures.
- Provided a puldown list of musicians the site knows about, alphabetized of
course.
- When the user selects a musician new page is produced, containing
approximately what your pages did before, but without breadcrumbs or global
navigation.
- You must have a picture for every musician.
- You must have music for some musicians.
- You are to build a database containing everything you need about each
musician. The primary key should be the musicians' names, but presumably in a
one-word internal format. The full, regular name can be stored as a string in
another column.
- I sure hope every team includes one person with a laptop. The database is
going to be much too big to attach as email.
- You need to know how to store pictures and music in a BLOB (Binary
Large Object) column. As of this writing, after considerable
Googling, I don't know how to do that. Whoever figures it out, SEND
MAIL. Your name will go up in lights. Bear in mind that I do not grade on the
curve: for you to help other teams does not lower the grade for your team, as
it could with curving.
- There will be several deliverables, to be detailed this weekend. Plan on
at least a preliminary presentation of a prototype, and a PowerPoint-based
report on user testing.
- Time has marched on. Three weeks from today all this will be history.
Added 11.26.2005
- I suppose it goes without saying, but I'll say it anyway: your project
must use Tomcat, servlets and JSPs or something else you've learned that does
all that, and MySQL. Implementation details are entirely up to you. You could
put the images and the music in ordinary files, with the database entries
simply giving the matching file names. You might choose to put the pictures in
a HashMap, again with the key taken from some column in the database. If you
have learned how to use Java Server Faces, by all means show us how it works.
If you are using Tomcat and MySQL but decided on PHP, go for it. Practice
anything you've learned. It will look good on an interview, if things work out
that way.
- Test your program with data from previous homeworks. I talked earlier of
getting five musicians from each class member, for a database of a couple of
hundred. That isn't going to happen, but perhaps I will consolidate enough
team submissions to provide data on a couple dozen. Stay tuned.
- Deliverables:
- By Tuesday, December 6: a prototype, demonstrated to class or perhaps just
to me. Must have a page that POSTs to the Web server, and returns something
from the MySQL database. 30% of project grade.
- By Tuesday, December 13: A PowerPoint show emailed to me, giving the
results of user testing. 10% of project grade.
- By Thursday, December 15: Your final project, demonstrated to 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.
- Pointers to BLOB handling, from Mike Malenowski:
Blob in PHP and MYSQL:
http://www.wellho.net/solutions/php-example-php-form-image-upload-store-in-mysql-database-retreive.html
Discussion of whether to put a BLOB in the database, or to put only the path
to it in the database with the actual BLOB simply in a file:
http://www.faqts.com/knowledge_base/view.phtml/aid/1241/fid/102
Sample code for Oracle but similar with MySQL
http://www.grallandco.com/blog/archives/2004/10/sample_code_blo_1.html
Also, try forums such as
http://forum.java.sun.com/thread.jspa?forumID=48&threadID=549705
http://forum.java.sun.com/thread.jspa?threadID=667040
http://forum.java.sun.com/thread.jspa?threadID=666222
- Important notice from Hazem Salama:
Professor,
I am not sure if I made myself clear on the issue of putting the data access
code in a normal Java class. After discussing the issue with Sue Peters, I
think I got an idea of what students were actually looking for. What I meant
is that you can spare your servlets and jsp files from doing data access,
which is the best practice. You should never see any database access code in
a jsp at least. We only do it to test connectivity, since it is the easiest
way, to limit any errors that might be servlet or JNDI specific. So by
putting all your database access code in a separate class gives you an extra
degree of separation, but that class (bean) is still being controlled by
Tomcat (or whatever application server you use). So you still need to have
the database driver in the right place for your application server to use it.
If the scenario, as I understood later, is that you may have a working Java
program that already does the database
access and you just need your Tomcat application to talk to it, then were are
talking about a whole different problem. You would have to have that class
also defined in your classpath. But I would assume that you still need to
have the driver in the right place for Tomcat. I never did it, so I cannot be
so sure. Another way is to access an object that is already running in a
different JVM, but now we are talking about distributed applications, which
will involve something like RMI or EJBs. Hopefully that makes it clear.
Thanks,
Hazem Salama
Back to Dan McCracken's Home Page