CPSC 304, Preliminary Proposal
Goals and motivationThe
goal of the project is to allow you to have the freedom to design your
own application; we want to let you have the freedom to concentrate on
some aspects and not on others. A consequence of this is that we won't
be telling you exactly what to do.
we don't expect you to read our minds, this is one purpose of the
checkpoints - we give you feedback on the project and tell you if
you're on track to do well and if not how to get there, without
penalizing you for not being able to read our minds.
for those who want a bit more of an idea of what's an acceptable
project, we offer the following rough guidelines. We expect that each
application should eventually have:
As well, you can use the project from a previous term as a guideline for what is complex enough for a sucessful project. You may not model
UBC's data (discussed in 304 class from previous years), employee
supervision (discussed in textbook), a book store (project topic in
this example), MP3 storage (discussed in class from previous years), or
project given to you in tutorial. Additionally, this must be a new project - you may not reuse a pre-existing project.
- At least 5 entities and 5 relationships
- The ability to handle multiple users
- At least 10 queries that users will be able to ask via the application interface.
One member from each group must turn in the following using the handin directory "project-proposal". To do so, you'll need to get an account on the CS ugrad machines.
Briefly, the name of the assignment that you should use is
"project-proposal". The command you should use for this assignment is
"handin cs304 project-proposal", and to use the default setting, all of
your files that you are submitting must be in a directory called
~/cs304/project-proposal. Note: If you want to ssh in to use the handin
script, try logging onto remote.ugrad.cs.ubc.ca. (this should only be a
page or less long):
- A cover page
- Project description: what is the domain, what aspects of the domain will be modeled by the database.
- What are the application specifications? (i.e., what functionality will the system provide)
platforms will the final project be on (i.e., Oracle, Java). Note that
we believe that you are allowed to use any platform that you please, as
long as you create an application for a relational database, and that
you meet all of the other requirements. At this time, we plan on
offering suport for Oracle from the CS machines, along with either JDBC
or PHP/web If, however, you decide to go with anything other than the
provided infrastructure (including doing PHP on your own server), you
may be required to submit additional information or submit to
additional checkpoints. However no support will be available for anything other than the recommended software.
- Other, more specific comments if appropriate.
Sample submissionAs an example, if I were going to turn in a banking proposal, I might submit the cover page and something like:
domain that I'm going to model is going to be the banking domain; i.e.,
the kind of information that is stored about the accounts in one bank.
aspects of the bank that I will be modelling will be the information
relevant to the customer information in the bank. This includes things
like the the accounts that a given customer has, information specific
to the customer (e.g., the customer's name and address), and the
customer's credit cards. There will be a number of different kinds of
accounts, and some of these accounts will have additional information
to let customers know if that account is right for them (e.g., a mutual
fund account will contain information on what stocks are included in
the mutual fund and how the fund performed over the past year).
will be two different classes of users of the system: the customers,
and the bank employees. The customers will be able to access their own
accounts, and transfer money from one account to another. They will
also be able to update some of their personal information, like their
bank account password. The bank employees will be able to access all of
the customers' data - both the customer accounts and the customer
personal information. Only the bank employees will be able to change
things like the customers' SIN. Bank employees may reset the customers'
account passwords, but may not see them.
This project will be
done using the CS department's oracle database and using Java and JDBC.
I do not anticipate using any special software or hardware.