CS541 Project 4 – JDBC and Java Application
Due date: Feb. 13th at 11:59pm. 

In this project you will develop a Purdue-CT system (a small version of Web-CT). During this project, you will be developing a Java Application (not an applet) client that accesses an Oracle database using JDBC. 

I. Description of the problem:
Purdue-CT will provide some basic course management tools to help professors and students in their academic activities. The application will support two kinds of users: faculty members and students. 
The database of the system should maintain information of faculty members, students, departments, classes, enrollment, evaluations, and messages that professors sent to their classes.
The user interface should be friendly and provide the following functionalities:

Tools for faculty:
1. Create/Modify a class
Using this tool, a professor can create a new class in the system or modify a previously created class. The information that will be maintained for a class should include: Name, semester, year, Meets_At, room, and FacultyID who teaches this course. 
A professor cannot modify a course that he didn’t create.
2. Assign students to a class
	A professor will use this tool to assign students to his class. In this version of Purdue-CT students cannot add a course; they are added only by the professor who created the course.
3. Create/Modify an evaluation
	Each course could have several evaluations. With this tool the professor will be able to create and modify evaluations for the courses that he created.
	The information that the system should maintain about evaluations will include: Evaluation type (HW, Midterm, Final Exam, or project), %weight, date_deadline, room (could be null).
	An evaluation can only be modified if current date < date_deadline.
4. Send a message to a class 
	The professor can send short messages (maximum=400 characters) to the classes he created. The messages are sent to a class and not to each student. When a professor send a message to a class, all the students of that class will receive the same message.
5. Report of classes
	You can see the format of this report in a following image in this handout.
6. Report of students and grades
	The format is the following:
Class Name, semester, year, student name, current-grade
Where current-grade is the grade considering all the evaluations of that course that have grades. You should use the attribute %weight of an evaluation to calculate current-grade.

Tools for Students:
1. My messages 
	Using this tool the student will be able to read all the messages that professors sent to courses in which this student is registered.
2. Calendar of evaluations
	This tool will inform the student of all the evaluations that have been created for courses in which he is registered.
3. My classes
	A report that shows information about all the classes in which the student is registered.
4. My grades
	This tool shows the grades of all the evaluations in every class in which the student is registered. It should include the current-final-grade.

II. What do you need to do?
1. Creation of the DB
First you need to create a database in Oracle that support all the requirements of 
Purdue-CT
2. Create the Java application
Your second task is to create a Java application that supports all the functionalities of Purdue-CT. Just to have an idea of how the interface should look like, we are including in this handout some specific interfaces. You can change them and implement the user interface that you think is the best.

        

III. Helpful Links and Information
•	JDBC Tutorial: http://developer.java.sun.com/developer/Books/JDBCTutorial/
•	Setting up environment for pod machines (podx-x.cs.purdue.edu): http://www.cs.purdue.edu/resources/facilities/oracle/cs.sxhtml

Important Note: 
Please keep your tables and all other data after turnin. When I run your program, there should be an initial set of data in your database. 

IV. Submitting your work
Please create a README file that contains identifying information. 
The minimum required content of this file is: (1) instructions to compile and execute your code, (2) database schema, (3) user names of both faculty members and students, (4) List of optional features implemented.
To turn in your project, create a temporary directory. Copy the files you created for this project into that directory. cd to that directory. Then execute the following command: 
    $ turnin -c cs541 -p proj4 .