Client Server Computing
Assignment 1

Due date: 7 April, end of week 6
This assigment may be done in groups of two.


Students are enrolled in units which are administered by lecturers. Each unit will have a set of assessment items, and lecturers assign marks to these. Currently, there is no centralised database for this, and students do not have easy access to their grades.

This assignment is to produce a client-server system that allows recording of student enrolments in units, and marks for assignments within these units. The server will maintain a database storing enrolment and marks information. The lecturer in charge of a unit will be responsible for updating student lists and marks for that unit. Students will be able to query the server for their current enrolments, the assessment items for that unit, and their grades within a unit.


Only a lecturer in charge of a unit can change enrolments or marks. A student can only get access to information about themselves, not about others. Suitable authorisation/encryption methods must be employed to guarantee this.


You should implement both a client and a server. They should run on two different platforms e.g. Unix and DOS, or a Mac and Windows NT.

Implement both using TCP/IP sockets, with your choice of port. In that case you can assume that each client has a copy of the relevant software somehow. This would involve C and Visual Basic or similar programming.


Please submit a listing of the source code for both client and server, and the software on a floppy disk. You should also include relevant documentation describing the protocols used, in sufficient detail that a new client or server could be written that will interoperate with the old ones.