/floatingfile

The monorepo behind floatingfile.

Primary LanguageTypeScript

floatingfile

floatingfile is a file sharing platform that marries the flexibility of file storage applications with the convenience of file transfer applications.

If you'd like to try out the latest features, try out beta.floatingfile.space. Spaces created using the beta application are compatible with the production application.

Motivation

floatingfile was built to improve the process of moving files from university workstations to personal computers. A login-free and flexible solution was needed. For more info, see here.

Repository Structure

This respository is a monorepo containing packages that are responsible for the web client application, server, and landing page.

Please note that the codebases for the iOS application and CLI are not included in this monorepo.

Application Description Technologies
client Frontend for the floatingfile application. Boostrapped with Create React App. react, chakra-ui
landing floatingfile marketing/landing site. nextjs, react, chakra-ui
server Backend for the floatingfile application. express, mongoose, aws-sdk
cli Command line interface. TypeScript
Package Description Technologies
types Type defenitions.
ui Shared UI components and themes.

Development

Prequisites:

  • Yarn
  • Docker
  1. Clone the repository
$ git clone https://github.com/garethlau/floatingfile.git
$ cd floatingfile
  1. Install dependencies
$ yarn install
  1. Create /apps/server/.env file
PORT=5000
NODE_ENV=development
USE_LOCAL_DB=Yes
USE_LOCAL_S3=Yes
S3_BUCKET_NAME=floatingfile-dev

See .env.example for more configuration values.

  1. Start the mongodb instance and the minio instance
$ yarn start:storage
  1. Start the application (in another terminal)
$ yarn dev

Maintainers

  • Gareth Lau maintains floatingfile's servers, APIs, web applications, and CLI.
  • Alan Yan maintains the floatingfile iOS application.