| Java Programming Spring 2003 Final Project |
|   Course Syllabus   |   Java Programming Home   |   HW6 FAQ   |   Assignment   |   How to submit |
NOTE: You may choose to include your HW6 calendar as part of your final project. P6 does not need to be submitted individually. |
NOTE: You may work with a partner on HW6 and the final project |
| Assignment |
The final project is a full-blown Personal Information Manager based on the PIM classes distributed for HW6. You may use your own classes as a base if you desire, although you need to stick to the same general idea (todos, appointments, etc.). Please contact Dave if you don't want to use the public code as the base of your project (if there are problems with the PIM classes, we shoudl fix them!).
You Personal Information Manager must support all 4 PIMEntity types, and provide (at a minimum) the following via a graphical user interface:
A calendar that displays one month at a time, and allows users to change months (back and forward buttons are fine). All items that have dates associated with them must be displayed in the calendar. The calendar needs to meet the Project 6 requirements and be capable of moving to another month...
The user must be able to create new PIM items via a GUI. You decide what makes sense for this, there is no required specific type of GUI we have in mind.
The user must be able to edit existing PIM items via a GUI. The interface for updating PIMEntities in a RemotePIMCollection (RMI) has not yet been established (for now just worry about changing a local copy of the PIMEntity).
The user must be able to view all PIM items by item type, so there should be some way to view all Todo items, or Appointments, etc. There is no required format for the display of various kinds of items (do whatever looks nice to you).
There must be some way for the user to save/load items, either to a local file or to a RemotePIMCollection such as the one running on monte.cs.rpi.edu for HW6. You do need to use RMI for HW6, but this is not required for the final project (if you HW6 is part of the final project it must support RMI).
There must be a menubar that allows users to select from the supported functions (view calendar, view todos, view contacts, etc). The menubar should also include menu items for creating new PIM items ( "new TODO", "new Appointment", etc.).
The user should be able to specify an account name (used as the owner for PIMEntities) once, not each time an item is created. The username can be prompted each time the program starts, it can also be saved in some kind of configuration file (or specified on the command line). The important issue is that the user is not required to specify the owner every time a new entity is created.
For PIMDateable objects (PIMTodo and PIMAppointment), you don't need to worry about times, a single date (month, day and year) is all that you are required to deal with.
All source code written by you must be commented with Javadoc comments (and whatever other comments you think are appropriate).
There is source code for all the PIM related objects available at www.cs.rpi.edu/~hollingd/java/hw/hw6. There is an RMI server running on monte.cs.rpi.edu that supports the RemotePIMCollection object defined in the source code referenced above. The same code includes the RMI server in case you want to play with your own RMI server. The source code also includes a sample RMI client (named TestClient) that shows how to make use of a RemotePIMCollection object. The sample client does lots more than your Calendar progam will need to do... See the README file in the above code for a description of all the files.
| How to submit |
Submission of your homework is via email, the general idea is to send an email message with your files as attachments. There is an automated email submission system that will respond to your submission right away, so you will have a record that we got your files. For HW7 you should submit your .java files for the complete GUI Personal Information Manager program. All files must be commented using the JavaDoc style comments (so that we can run javadoc on your code to extract information about your class(es)). You don't need to include any of the files we are providing (PIMEntity, PIMCollection, etc.).
You must include a file named README that includes your name, and instructions on how to build and run your system.
All projects must be submitted via email to javaprog-submit@cs.rpi.edu.
The subject line of the submission message should contain a single
number '7' indicating the HW number. The body of your message should
include your full name (and anything else you want to tell us). Make
sure your email message includes your full name, we can't record your
grade unless we know your name (and the email address
joe222@yahoo.com doesn't mean anything to us!).
Don't send compiled code (class files)!
You can expect a return email indicating receipt of your project submission immediately. This receipt will include a list of all the files that were successfully extracted by the submission script - please look over the receipt carefully to make sure your submission worked.
Multiple Submissions: You can resubmit up to 10 times for each project, we will always grade the last submission received unless you tell us otherwise.