Assignment 3: Building a simplified replica of
1 Assignment Information
Course: | MSCC/MSCBD |
Stage / Year: | 1 |
Module: | Cloud Computing |
Semester: | 2 |
Assignment: | 3 of 3 |
Date of Issue: | 2021-03-04 |
Assignment Deadline: | 2021-05-23 (End of week 12) |
Assignment Submission: | Upload to Moodle |
Assignment Weighting: | 24% of Module |
2 Introduction
NOTE: read the whole assignment brief first before implementing it contains very important information
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.
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.
5 Coding Brackets
- Bracket 1
- Write the shell of an application that has a working login/logout service.
- Create models of a user, directory, and file using appropriate datatypes.
- If a user logs in for the first time a user model should be created for them.
- a default root directory (path of /) should also be created for this user.
- Bracket 2 Add the ability for a user to create a directory (Bracket failure if the same directory name is allowed in the current directory) Add the ability for a user to delete a directory (Bracket failure if the wrong directory is removed)
- Bracket 3
- Add the ability to change into a directory
- Add the ability to go up a directory with the special entry (path of
../)
- If a user is in their root directory dont display (path of ../)
- Bracket 4 Allow the user to upload a file to the current directory and store it in the cloud storage bucket. This should not overwrite a file that is already there. If a file is already there ask the user if they want to overwrite it.
- Allow the user to delete a file from the current directory (Bracket failure if the wrong file is deleted.
- Allow the user to download a file from the current directory to the local machine.
- Bracket 5 Prevent the deletion of a directory that still has files remaining. Provide an appropriate warning to the user. Prevent the deletion of a directory that still has directories remaining. Provide an appropriate warning to the user.
- Bracket 6 Add in the ability to detect duplicate files in the current directory. Display the files that match Add in the ability to detect duplicate files in a users entire dropbox.
Display the files and paths that match
- Bracket 7
- Add the ability to share files read only between multiple user accounts 8. Bracket 8 (80%) UI design: Well thought out UI design that is intuitive and easy to use.
Reviews
There are no reviews yet.