Project Description And Requirement

Description

The project should build a centralized spreadsheet, which is controlled by a server. There are multiple users that spread over a network can access to this spreadsheet. Through the server, a single user may have different views of the different or same parts of the spreadsheet. A user can edit the spreadsheet, namely, change a cell value of the spreadsheet. The value of a cell could be eithor a numeric value or an expression that may referece to other cells. When a user successfully update a cell, all the other users must notify the update. In other words, all the views of all the users should be updated immediately. A user can infinitely undo or redo his updating of the spreadsheet. Since there are multiple users, the coordination should be handled by the server. The implementation should be done by using Python.

Requirement

The project iteratively develops a distributed, multi-user spreadsheet. Prototypes are built and tested incrementally using a software process similar to Extreme Programming. The main focus of each prototype is on the design rather than on the implementation. An attempt is made to re-use design patterns as much as possible.