This project will have you create a similar project to what was done for MP 2 except this time you are to use .NET.
The primary change will be that you are to only have one server to connect to. All three databases/files will be accessed through this one server. Thus your server will handle the updating to the employee database, the project database and the assignment database.
You may work on this project in groups of two or less.
If you feel you must have a group of three, the entire
group of three must meet with Prof. Troy to
explain why a group of three is needed. Please meet with
Prof. Troy during office hours.
For grading, you will demo the project to the TA. Times will be set-up to meet with the TA. While the entire group does not need to be at the demo, it is highly encouraged that everyone show up (this is in case your group cannot determine a time that everyone is available).
How to turn in your work
Your program is to be submitted electronically via the turnin command on the LINUX machines. The project name for this is mp3. All programs are expected to be written in good programming style using the java programming language.
Turnin your program electronically using the "turnin" command from your CS account as follows:
where the [your project directory] is the directory name under which you have all your files related to this programming problem. The turnin command will automatically compress the data under your directory, so there is no need to do the compression by yourself.
turnin -c cs441 -p mp3 [your project directory]
Notice you can only invoke turnin command on the Linux machines in the lab or after logging into the server machine oscar.cs.uic.edu.
If you want to verify that your project was turned in, look in the turnin directory for a file with your userid. For instance for this project, from your CS account you would type:
?turnin -c cs441 -v
Note that you can execute turnin as many times as you would like, up until the program deadline when turnin will be disabled for this project. Each time you execute turnin for a project, you overwrite all of what you had turned in previously for that project.It does not work in an incremental way.
For this assignment, you will use RMI to create a client/server program with two databases one for employees and one for projects.
The employee database is to have the following fields:
The project database is to have the following fields:
The Employee Name, Department, Project Name and Client fields can be stored as strings. The Start Date and Completion Date fields should be stored using the Java Date class. The Employee Number and Project Number fields can be stored as integers.
Your program should have two servers. One for the employee database and one for the project database. Each of these databases can simply be a List of records. Both databases are to be stored in a serialized file when the server program is not running. Each serialized file is to be stored in the same directory as its server. When each server starts its execution, it will read in the contents from the serialized file to initialize the database. If the serializable file does not exists, the server is to create the file and start with an empty database. The server is to write out to the serialized file anytime the contents of the database is changed. This will keep the serialized file in-sync with the database so the server will not need to write out the database when the server's execution is stopped.
Each of these databases will have its own client program to allow for the adding, modifying and deleting records to/from in the database. Below is a possible interface for the employee client. A similar interface can be used for the project client.i
A java program has been created to show a possible user interface in Mp2Gui.java.