CollabViolet

CS151

Daanish Husain, Michael Sterpka, Matt Swerdon

Client Server Protocol

  • For this project we tried to keep the server as simple as possible, with the majority of the work happening on the violet end
  • Essentially the server does two main things:
    •  Generates session ID and user IDs
    •  Stores strings (The encoded commands)
  • Violet tasks:
    • ​Assign ID's to nodes and edges
    • Catch and send all changes to server
    • Process and execute commands from server

Useful Techniques

Observer Pattern

  • The idea behind the changes made to Violet was to use the observer pattern in order to catch the changes made and then send them to the server. In order to use the observer pattern 2 classes were created:

    CommandEvent.Java

    • public CommandEvent(Object source, Point2D point2D1, Point2D point2D2, Commands command, Node n1, Node n2, Edge e)
  • CommandListener.java

    • This is an interface used to represent A listener with a single method: public void graphMod(EventObject event);

  • In the end the listener wasn't needed.

     

Reflection

  • Super Important, this was how we were able to send objects over the server as Node/Edge objects and then figure out which ones they actually were

  • Finding fields that needed to be modified, or checking if they existed

TeamWork

Was It successful?

  • The project did end up being completed for Class Diagrams so in a way it was

  • Teamwork-wise there was a lack of communication

  • Disparity in the amount of work each team member did

  • Github an excellent source control tool for development, good at tracking amount of work each member did

Final Thoughts