top of page

Acerca de

diagram.png

Multi-User Networked Spreadsheet

This was a 4 person class project wherein the goal was to extend a spreadsheet we had individually made a year prior in order to add networking functionality, such that multiple users could edit the spreadsheet simultaneously and see each others changes.

The spreadsheet specification was as follows:

  • Users must be able to concurrently edit the spreadsheet.

  • A server can host multiple spreadsheets, and can save and load them.

  • Spreadsheets must be able to evaluate arithmetic formulas which reference other cells (and must handle circular dependencies in formulas).

  • Users must be able to see which cells other users are editing.

  • There must be an undo function, which tracks changes up to the point the server loaded the spreadsheet last and allows the user to undo them.

  • There must be a revert function, which functions like an undo function but only affects the changes done by the user performing the revert.


We received minimal guidance except for the specifications for this assignment.

My personal responsibilities within the group were the handling of client-side networking.

Additionally, my group designed the networking communication protocol chosen communally to be used by the whole class.

Included here are 3 files:

  • "Spreadsheet Communications Protocol" is the networking protocol specifications designed by our team and chosen to be used by the entire class.

  • "Network.cs" contains the code for generic C# network communications, operating on the assumption that messages are encoded as strings. 

  • "NetworkInterface.cs" contains the networking code specific to this Spreadsheet project, and implements the protocol detailed in the "Spreadsheet Communication Protocol".

© 2022 — Joshua Butner.

bottom of page