Due Nov. 29th
Chat OPTION
Group & Port List (see blackboard Project 3 discussion board)
(start work with exercise in SW Engineering module)
Points 250
+ 30 points Fellow Student Evaluation
This is our only group project. You are to work in teams of 2 to 3
people maximum (note should somone leave from your group, you still
must complete all of the work). Your team will be responsible for implementing
a Text Chat program. The Chat program will be a GUI application and
will allow for group chat sessions (see extra credit: as well as peer-to-peer
sessions). Everyone in your group will receive the same score.
ORIGINALITY: It
is fine to look at publically available chat code to get ideas, but,
you should NOT copy code. You should also design your own GUI's. If
found copying code, you will at the very least receive 0 points on this
project.
NOTE: YOU NEED TO quote!!! the references
you used in creating your code.!!!!!
Specifications
- You will create a Chat Server application that uses ServerSocket
class to listen to a port numbered from 50000 to 50500. (Your group
will be assigned a number to use). Your server will wait for a connection
from a Java GUI Client Application and as a result spin off from
this a Socket and connection. Note more that one Java GUI Chat Client
can try to connect and a Socket and stream for each should be created
(see class lecture tips and discussion).
- You will create a Java GUI Client Application that can run on
any machine with a JVM. This GUI Chat Client Application will use
Sockets to connect and communicate with the Java Chat Server Application
over the preselected TCP port.
- The Java GUI Chat Client will send either "Connection"
or "Data" messages to the Java Chat Server Application
over the socket. "Connection" message will be either about
connecting or disconnecting to chat. "Data" message is
simply a chat message the client is trying to send out to the chat
room.
- The Java GUI Chat Client Application upon startup opens a Socket
and connection to the port number the Java Chat Server is listening
to. It then sends a message saying it wants to "connect"
to the chat room, sending along with this identification information,
including a "user handle" that is used as the person's
identification in the chat room. These user handles of the people
actively connected in chat are displayed in each Java GUI Chat Client
Application being run.
- Once you have entered into chat, the user can see the current
text messages as well as there is a location for them to type in
a new message and send it.
- From a Java GUI Chat Client, you should have the ability to leave
a chat session. This will cause the Java GUI Client to send another
"Connection" message this time requesting a disconnect.
As a result, any streams and thread associated with this client
in the Java Chat Server should be closed. Also, all of the other
active Java GUI Chat Clients should recieve a message that updates
their list of user handles currently in the chat room so that this
person's handle no longer appears.
- From a Java GUI Chat Client you should have the ability to save
the current displayed session text messages to a file.
- You will determine the class structure for the GUI frames and
elements and event handling as needed.
- Extra Credit (50 pnts towards project score): Allow user entering
chat to be able to spin off a 1-to-1 chat with another person also
in the current list of users.
- HINT: You may want to use multiple threads, the concept here is
for each Java GUI Chat Application that connects to the Server,
you should spin off a thread to handle sending messages to it.
Evaluation Guidelines
Fellow Student Evaluation Due- Dec. 1
- You will be given up to 30 points for a thorough and complete evaluation of a fellow students work. You are assessed on how well you have done at evaluating a fellow student.
- This will be done using the blackboard "ProjectX_Post_For_Fellow_Review" and "ProjectX Fellow Review" assignments. Read Instructions for Fellow Student Evaluation.
- Your evaluation is important because it:
- may be used as guidance by the Instructor in forming their evaluation
- it is used by the student you are evaluating as a peer evaluation and feedback of how they did on this project.
- This is the Fellow Student Evaluation questions you will use for evaluation
- If the instructor requests an paper copy - Put your name and students name on top as:
- STUDENT: the student's name
- REVIEWER: your name
- THEN give a numeric score for EACH line item AND MOST importantly add comments under each line item add the following items:
- A. SYNOPSIS of LINE ITEM: synopsis in english of what the student did on line item. If it doesn't work, try to give fellow student tips as to why this might be.
- B. CRITIQUE of LINE ITEM: tell student how well they did in English- think about understandability/readability, code reuse, good OOP standards as appropriate (encapsulation, inheritance, construction, appropriate methods, class variables), code efficiency. If item didn't work tell how much was implemented 10% or 50%, etc. and what was not done. If item did work tell how might improve.
Deliverables
- CodeWorks.doc: contains the following components:
- A: Description- give a detailed description of how your system works including:
- A.1) List of Classes: with brief desciption of purpose, discuss any data structures/algorithms used their efficiencyUse O(n) terminonlogy where n is the number of entries.
- A.2) State of System: a description of what parts are or are not working ---give details. If your system is NOT working and you do not show screenshots of how it is failing and show you have through screen shots tried to insert breakpoints and done debugging you will have points taken off.
- B: URL: Posting of JavaDoc code to your server account. Turn in URL to website. Every class, its variables and methods MUST be documented/described --not just listed.
- C: UML/Design: contains the following
- C.1) UML Class Hierarchy Diagram: showing Hierarchy and Cardinality
and Object Associations for this project.
- D: Working Screenshots: Printout showing your Java Application working (capture screen dumps
into a word document and printout) for the following cases:
- D.1) Work Instance 1: Showing your Java Application working (capture screen dumps
into a word document and printout) for a set of group chat sessions.
- D.2) Work Instance 2: Copy of text file saved of a chat session
- Demonstrate Project working to instructor ON DUE DATE.
- Upload all files above to blackboard project. MUST KEEP THESE FILENAMES.
|