This thesis aims to demonstrate the design process and implementation of a Timesheet Reporting System based on the client server model. Users of the system can define tasks and subtasks. They should be able to log time spent on particular subtasks. The logged data should be analysed later to support business decisions on work force management. Users should be able to administer these subtasks, and they should be provided with an ergonomic, easy to use user interface to start or stop measureing time spent on individual subtasks.
Data should be stored on a server. Client applications would connect to the server, and use the server API to store logged data and client state. The server API should be platform independent in order to support client development on any platform client developers wish to use.
The author of the thesis attempts to demonstrate a possible design and implementation of a HTTP based client server architecture. Server API is designed with REST architectural style in mind. The Server is built on top of a popular lightweight web framework for .NET, Nancy. Tha author gives an introduction to the Inversion of Control programming technique, introduces IoC frameworks and demonstrates the usage of Autofac IoC framework during server implementation.
The thesis gives a brief introduction to the SignalR real time web framework, and considers designing sysnchronisation means for the timesheet reporting system.
At last, an example client is built on Windows Forms using slightly different approach than traditional WinForms applications.