While a truly novel project idea would be nice, it's ok to recreate something that already exists, so that you can learn from the process. If something similar already exists, you should be aware of it and read about how it works, but then write your own code.
The project has three main components:
If your project will make use of Amazon web services, you can make use of a academic grant we have received from Amazon. Each member of the class can receive a credit in Amazon web services, to be used to run virtual machines and other services for the class. You will have to register with Amazon, enter your own credit card, and then enter a special credit code. The TA will be distributing the credit codes shortly.
The paper should give an overview of the goal or the problem, a detailed description of the structure of your system and the application, and an evaluation of the correctess and performance of your system. The paper should include at least one diagram indicating the architecture of the system and at least one graph which summarizes your performance evaluation. There is no specific length requirement; the paper should be long enough to explain all of the necessary details. That said, anything less than ten pages is probably too short; anything longer than twenty pages is probably too long. All elements of the paper should be prepared with care and attention to proper English. I an interested in your writing, not your formatting, so please stick to standard 12-point Times font, double-spaced, with one inch margins. Turn in your paper in PDF format to your dropbox directory.
All relevant code should also be turned into your dropbox directory, including source code, configuration files, scripts, etc. The code should be complete enough that the grader can build and run your work in the appropriate environment. If there are important elements that cannot be turned in as code for whatever reason (e.g. too big or expensive to download from the cloud) then turn in links, screenshots, or other similar evidence of the completed work.