Collab Violet

By Bing Liang, Paul Nguyen, and Ruiyang Wang

Description

What if multiple people want to edit a UML or Sequence Diagram?

Through CollabViolet, multiple users can connect to a server and simultaneously edit a shared file

Features Implemented

  • Play Framework
  • SBT local server
  • Serialization
  • Ant build

What it Does

Our program allows multiple people to collectively edit a UML file or sequence diagram.

This is great for large projects and helps collaborators keep track of what classes are implemented

How it Works

  • Everyone connects to a server via a Room ID
  • The program records all local actions of all users
  • The commands are serialized then sent to the server
  • The users receive the serialized file from the server
  • The file is then unserialized and replicated on the user's client

New Concepts We Learned

  • Serialization
  • Basic server connections
  • Frameworks

Design Concepts

  • Command Pattern
  • Command: The execute method used in all commands
  • Invoker: The graph's send method that sends all commands to clients
  • Receiver: The user(s) receiving the commands
  • Client: The user executing the command
  • All commands are put onto a list and await execution
  • Code relies mainly on the execute method

Our Experience

  • Git commit conflicts
  • Communication was sparingly used until the end of the project
  • Unexpected events

Questions?