Skip to content
This repository has been archived by the owner on Dec 30, 2019. It is now read-only.

onedoes/snapdrop

 
 

Repository files navigation

💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀





💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀









Snapdrop

Build Status Sauce Test Status



Sauce Test Status - Master Branch



Snapdrop is inspired by Apple's Airdrop, but is a Progressive Web App built with Polymer and Web RTC.

WEBRTC is supported on :

  • Android > 4.4
  • Chrome 26+
  • Firefox 23+
  • Edge 14+
  • Safari 11+

from https://caniuse.com/#feat=rtcpeerconnection
from http://peerjs.com/status/
from http://peerjs.com/status/old

Install

$ yarn

Launch dev env

$ yarn start
# Watch pwa tests
$ yarn run lerna -- run wct --stream -- -- -p

Deploy

use a release-plz tag

The front-end (in the packages/pwa folder) is deployed to a github pages by Travis for every valid commit on a tag. (see https://docs.travis-ci.com/user/deployment/pages/).
Release with lerna

$ yarn run lerna publish --skip-npm --conventional-commits

# then

$ git push --follow-tags

The back-end (in the packages/server folder) is deployed via now.
It's done manually for now (PR welcome) mainly because we don't have a real domain or a way to sync the generated back-end url given by Now.

$ TOKEN=XXXXXXXX; now -t $TOKEN --public -e PORT=443

then change the back-end url in app.js file.



2017-10-08 Lighthouse 2.5 score 71.5/100 from webpagetest on Moto G4 - Chrome - 3G




Snapdrop is an open source contribution by Nimiq: the Browser-based Blockchain & Ecosytem.




This is a fork of https://snapdrop.net (https://github.com/RobinLinus/snapdrop) down since Juil 8th 2017







Snapdrop is built with the following awesome technologies:

Frequently Asked Questions

Instructions

What about the connection? Is it a P2P-connection directly from device to device or is there any third-party-server?

It uses a P2P connection if WebRTC is supported by the browser. (WebRTC needs a Signaling Server, but it is only used to establish a connection and is not involved in the file transfer).

If WebRTC isn’t supported (Safari, IE) it uses a Web Sockets fallback for the file transfer. The server connects the clients with a stream.

What about privacy? Will files be saved on third-party-servers?

None of your files are ever saved on any server. Snapdrop doesn't even use cookies or a database. If you are curious have a look at the Server. But it does use Google Analytics.

Is SnapDrop a fork of ShareDrop?

No. ShareDrop is built with Ember. Snapdrop is built with Polymer. I wanted to play around with Progressive Web Apps and then I got the idea to clone Apple's Airdrop. By doing research on this idea I found and analysed ShareDrop. I liked it and thought about how to improve it. ShareDrop uses WebRTC only and isn't compatible with Safari Browsers. Snapdrop uses a Websocket fallback and some hacks to make Snapdrop work due to the download restrictions on iDevices.

Snapdrop is awesome! How can I support it?

Run the project on your device

Licences

Packages

 
 
 

Languages

  • HTML 87.0%
  • JavaScript 11.7%
  • Shell 1.2%
  • CSS 0.1%