|  
        
          
        
        
           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 evaluationit 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 nameREVIEWER: your nameTHEN 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.    |