Santa Clara University
Department of Computer Science and Engineering
COEN-317: Distributed Systems

Programming Project

Project objective:

Implement a distributed computing queue that processes a series of jobs via a network of computers.

Minimally, the computing queue should:

  • Identify available worker machines.
  • Distribute jobs among the worker machines.
  • Collect statistics on job completion times for each worker machine.
  • Display a read-only queue showing jobs in the queue (to be completed) as well as completed jobs. The display should also display the average time to complete a job on each worker machine.

The jobs to be performed by a worker machine are as follows:

  • Detect a face in the still image using dLib with sixty-eight Cartesian coordinate data points as contours around face. Store the sixty-eight Cartesian data points in a Postgres database table. The Cartesian coordinates should be associated with a unique video ID and frame.
  • Calculate then draw Delaunay triangles using OpenCV and the sixty-eight Cartesian coordinates for the still image (read these coordinates from the Postgres database).

The user-interface should:

  • Enable a user to upload an input “selfie” video.
  • Display the completed input "selfie" video with composited Delaunay triangles on it. It should be able to play as an animated video.
  • Display the computing queue with information such as: IP address of each worker machine; The unprocessed frames in the queue on that worker machine; The completed frames on the worker machine; Average time to complete a job on a worker machine.

Uploading your programming project files

Please upload your entire project as a zip or gzipped-tar file. To minimize size of project file, please remove all test images and videos.

Programming project rubric

CRITERIA RATINGS POINTS
Computing Queue Proficient
5 points

Computing queue identifies number of available worker machines; distributes job tasks evenly among worker machines; writes statistics on job (task) completion times in Postgres database.
Satisfactory
4 points

Computing queue identifies number of available worker machines and distributes job tasks evenly among worker machines.
Below Expectation
0 points

There is no computing queue application.
5 points
Worker machine Exemplary
5 points

Worker machine software is capable of the following tasks: Detect face via dLib; Write sixty-eight Cartesian coordinates for face contour in Postgres database; Calculate Delaunay triangles based on sixty-eight Cartesian coordinates; Draw Delaunay triangles on still images derived from input "selfie" video; Store job (task) run-times in Postgres database.
Proficient
4 points

Worker machine software is capable of the following tasks: Detect face via dLib; Calculate Delaunay triangles based on sixty-eight Cartesian coordinates; Draw Delaunay triangles on still images derived from input "selfie" video.
Satisfactory
3 points

Worker machine software is capable of the following tasks: Detect face via dLib.
Below Expectation
0 points

There is no worker machine server software.
5 points
Queue interface Exemplary
3 points

The queue is displayed through a user interface. The data displayed includes: IP address of each worker machine; The unprocessed frames in the queue on that worker machine; The completed frames on the specific worker machine; Average time to complete a job on a specific worker machine.
Proficient
2 points

The queue is displayed through a user interface. One of the following is missing: IP address of each worker machine; The unprocessed frames in the queue on that worker machine; The completed frames on the worker machine; The average time to complete a job on a specific worker machine.
Satisfactory
1 point

The queue is displayed through a user interface. Two of the following are missing: IP address of each worker machine; The unprocessed frames in the queue on that worker machine; The completed frames on the worker machine. The average time to complete a job on a specific worker machine.
Below Expectation
0 points

There is no queue user-interface.
3 points
User-interface: video input/output Proficient
2 points

Interface allows users to upload input "selfie" video. Once input "selfie" video is processed, user interface allows users to play back the "selfie" video with Delaunay triangles composited on the video.
Satisfactory
1 point

User interface allows users to upload input "selfie" video.
Below Expectation
0 points

There is no ability to upload an input "selfie" video or play back a "selfie" video with Delaunay triangles composited on the video through a user-interface.
2 points
Total points: 15