Introduction
In this assignment you will be building a simplifed replica of the Dropbox cloud service. You will be required to have storage available for users where they can create arbitrary directory structures and can upload files and download files from the service. There should also be some access to some basic file sharing between accounts.
It is recommended that the structure of the assignment is closely followed with the brackets as you will need to get the directory structure working first before you will be able to upload and download files or attempt the later brackets after this.
Submission and Penalties
You are required to submit two separate components to the Moodle
• An archive containing your complete Google App Engine Python project.
The accepted archive formats are: zip, rar, 7z, tar.gz, tar.bz2, tar.xz. The use of any other archive format will incur a 10% penalty before grading.
• A PDF containing documentation of your code. If you do not provide documentation your code will not be marked. Copying and pasting
code into a PDF does not count as documentation.
There are also a few penalties you should be aware of
• Code that fails to compile will incur a 30% penalty before grading. At this stage you have zero excuse to produce non compiling code. I should be able to open your project and be able to compile and run without having to fix syntax errors.
• The use of libraries outside the SDK will incur a 20% penalty before grading. You have all you need in the standard SDK. I shouldn’t have to
figure out how to install and use an external library to get your app to work
• An omission of a git repository attached to your email address that is registered for GCD will result in your application and
documentation not being graded.
• The standard late penalties will also apply
You are also required to submit as part of your archive a working Git repository.
• When I unpack your archive there should be a .git directory as part of it.
• This should be a fully working local git archive. It should not require access to a remote repository
• You are not permitted to upload your work to Github, Gitlab, or any other publicly visible git repository (assignment will be marked as a zero
if it is)
• If you need a remote git repository the only permitted one is the college provided Gitlab which can be found at gitlab.griffith.ie
• There must be a minimum of seven commits in the git repository, one per completed bracket.
Very Important: Take note of the grade brackets listed below. These are meant to be completed in order. If you skip a bracket or do not complete a bracket following brackets will not be considered for marking. You should be well capable of producing strong and generally robust software by now. For example if there are six brackets and you fail the third one, then the fourth, fifth, and sixth brackets will not be marked. Documentation brackets will be treated separately from Coding brackets.
You should also be aware that I will remove marks for the presence of bugs anywhere in the code and this will incur a deduction of between 1% and 15% depending on the severity. If you have enough of these bugs it is entirely possible that you may not score very many marks overall. I want robust bug free code that also validates all user input to make sure it is sensible in nature.
Also note that the percentage listed after the bracket is the maximum mark you can obtain if you complete that many brackets without error. Everything in all brackets is mandatory.
Documentation Brackets (20%)
NOTE: Documentation should be around 1,700 words in length total racket 9 (15%): Document every method in your code from a high level
perspective. i.e. give an overview of what the method does. Do not copy and paste code you will be penalised for this.
Bracket 10 (20%): Document every datastructure and database design you have used in your code and why you chose them. You do not need to provide an E-R diagram for database designs.