Upload, Delete and Share Files and Folders via GCP
bash ./start.sh # http://localhost:8080
Requirements
-
Application login/logout service:
- Must match provided examples exactly.
- Requires
firebase-login.js
andlocal-constants.py
setup as shown in examples.
-
Data Model:
- Create collections for
User
,Directory
, andFile
with appropriate datatypes. - Create a default root directory (path of "/") for a user upon first login.
- Create collections for
-
Create Directory:
- Implement functionality for users to create directories.
-
Delete Directory:
- Implement functionality for users to delete directories.
-
Change Directory:
- Allow users to change into specific directories.
-
Navigate Up:
- Allow users to navigate up a directory level using a special entry (path of "../").
-
Root Directory Navigation:
- Prevent displaying the ".." entry when a user is in their root directory.
-
File Upload:
- Enable users to upload files to the current directory, storing them in the cloud storage bucket.
- Prompt for overwrite confirmation if a file with the same name already exists.
-
Delete File:
- Allow users to delete files from the current directory.
-
Download File:
- Implement functionality for users to download files from the current directory to their local machine.
-
Directory Deletion Protection:
- Prevent deletion of directories containing files or subdirectories.
-
Duplicate File Detection:
- Use hashing to identify and highlight duplicate files within the current directory.
-
Dropbox-wide Duplicate Detection:
- Implement functionality to detect duplicate files across a user's entire Dropbox, displaying matching files and their paths.
-
File Sharing:
- Allow users to share files with read-only access to other user accounts.
-
UI Design:
- Create a well-designed, intuitive, and user-friendly UI.
- Duplicate directory names in the same location.
- Incorrect directory deletion.
- Unconfirmed file overwrites.
- Incorrect file deletion.