Bulletin Board System Development

Job ID: 38182529

Budget: $250 – $750 CAD

This challenge consists of two phases. In the first phase you will construct a simple network server. The next
phase will consists of convincing multiple such servers to work together. Read the document completely
before starting any coding; everything in the document is part of the specification and it is your responsibility
to ensure that you have implemented the whole server as specified.
The challenge is set up so that it gives you the opportunity to showcase your skills at system programming
in a POSIX1 environment. Indeed, you must implement the server as a UnIx service (“daemon”) and you
further must use the POSIX API provided by the UnIx standard C library. Therefore your server must be
written in C or C++.
Throughout the handout we will refer to the following configuration parameters. How these parameters
are obtained will be described in Section 3.1.
• bp is the port number for client-server communication (positive integer), see Section 1;
• sp is the port number for inter-server communication (positive integer), see Section 2;
• bbfile is the name of the bulletin board file that will be manipulated throughout this project (string),
see Section 1;
• T is the number of preallocated threads (positive integer), see Section 1.4;
• peers the list of peers participating in synchronization (possibly empty list of pairs host name–port
number), see Section 2;
• d is a Boolean flag controlling the startup of the server, see Section 1.5;
• D is a Boolean flag controlling debugging facilities, see Section 3.2.
• Y is a Boolean flag controlling the facilities used for verifying the concurrent access to the bulletin
board file (see Section 1.3).

read the pdf for more info.