Skip to content

WEB application for Exchange project

License

Notifications You must be signed in to change notification settings

peterdee/exchange-web

Repository files navigation

exchange-web

EXCHANGE allows users to share files using browser on their devices

Shared files can be protected with a password

Stack: Vue, Socket.IO, Typescript, common-styles

Demo: https://exchange.dyum.in

Backend project is available here: https://github.com/peterdee/exchange-backend

Deploy

Clone repository

git clone https://github.com/peterdee/exchange-web
cd ./exchange-web
nvm use 18
npm ci

Create a certificates directory in the project root

mkdir certificates && cd certificates

Generate certificate files for HTTPS

# Generate key file
openssl genrsa -out key.pem 2048

# Generate CSR
openssl req -new -sha256 -key key.pem -out csr.csr

# Generate certificate
openssl req -x509 -sha256 -days 365 -key key.pem -in csr.csr -out cert.pem

HTTPS is required for the SubtleCrypto interface that works only in secure contexts

More details about certificate generating can be found here

Environment variables

The .env file is required, see .env.example for details

Launch

npm run dev

Local WEB application will be available at https://localhost:3000

Possible improvements

  1. Improve data transfer security for password-proteced files: check grant for every requested file chunk

  2. Allow sharing private files: make it possible to share files that are not publicly visible

Vercel deployment

release branch is automatically deployed to Vercel

License

MIT