Skip to content

This is a basic Dropbox clone to sync files across multiple remote folders using node.js w http & tcp

Notifications You must be signed in to change notification settings

yidea/nodejs-dropbox-clone

Repository files navigation

Nodejs Dropbox clone

This is a basic Dropbox clone to sync files across multiple remote folders.

Time spent: 15 hour

Setup

`bash npm install

start HTTP server and TCP server

npm start

start TCP client

npm run client `

Features

Required

  • Walkthrough Gif embedded in README
  • README Time spent: includes the number of hours spent on the assignment
  • Client can make GET requests to get file or directory contents
  • Client can download a directory as an archive
  • Client can make HEAD request to get just the GET headers
  • Client can make PUT requests to create new directories and files with content
  • Client can make POST requests to update the contents of a file
  • Client can make DELETE requests to delete files and folders
  • Server will serve from --dir or cwd as root
  • Server will sync HTTP modifications over TCP to the Client
  • Server will sync watched file modifications (e.g., fs.watch) over TCP to the Client

Optional

  • Client supports multiple connected clients
  • Client does not need to make additional GET request on "write" update
  • Client and User will be redirected from HTTP to HTTPS
  • Client will sync back to Server over TCP
  • Client will preserve a 'Conflict' file when pushed changes preceeding local edits
  • Client can stream and scrub video files (e.g., on iOS)
  • Client can create a directory with an archive
  • User can connect to the server using an FTP client

Walkthrough

  • GET + HEAD operation gif
  • PUT + POST + DELETE operation gif
  • TCP sync via HTTP gif
  • File Watcher gif

TODO

  • Unified error handling
  • event bus (seperate tcp server/client)
  • PUT new file in new folder
  • process nexttick
  • Unit tests

About

This is a basic Dropbox clone to sync files across multiple remote folders using node.js w http & tcp

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published