/fileshare

File sharing app with realtime firebase apps

Primary LanguageCSS

#README

Fireshare is a private cloud-based storage app that grew out of a desire to share files between friends.

The project is a functioning single page application that leverages a Firebase integration to store and serve user content safely and effectively.

  • A Node backend with REST API. Out API handles the CRUD ops and serves endpoints in a logical, streamlined, and agnostic fashion.

  • A React frontend with Redux and React-Router. React ensures that the user gets the type of performant experience that is expected from modern web apps.


Get Fireshare:

Note: You will need Node.js, MongoDB, and Nodemon (Nodemon is optional).

  • Clone this repository to your machine locally:
$ git clone https://github.com/ryanab/fileshare.git
  • Create your private environmental variables file and drop your secrets in:
$ cd ~/your/path/to/fileshare
$ touch .env
  • Set up your secrets:
MONGO_URL=mongodb://localhost/fileshare
TOKEN_SECRET=yourFirstFancySecretHere!
SESSION_SECRET=onlyYouKnowYourSecrets!

Note: You will not be able to run your local server without your .env file!

  • Next make a config file for the cloudinary integration:
$ cd ~/your/path/to/fileshare/src
$ touch config.js
  • Put your key information in the config.js file:
export default {
  CLOUDINARY_API_KEY: 'yourKey',
  CLOUDINARY_API_SECRET: 'yourSecret',
  CLOUDINARY_UPLOAD_PRESET: 'yourUploadPreset',
  CLOUDINARY_CLOUD_NAME: 'yourCloudName'
}

  • Install node modules:
$ cd ~/your/path/to/fileshare
$ npm install
  • Run webpack:
$ webpack -w
  • In a separate tab in the terminal, run your local Mongo database:
$ cd ~/your/path/to/fileshare
$ mongod

In another separate tab in the terminal, run your node server with Nodemon (or without):

  • Using Nodemon:
$ cd ~/your/path/to/fileshare
$ nodemon
  • Without Nodemon:

$ cd ~/your/path/to/fileshare
$ npm start

Team:

JD Richards

Ryan Byrn

Rob Ungar

Forrest Filler

Forrest Pan

Issues? Improvements?

  • Please file an issue or feature request above in the issues tab.

  • If you want to get involved, please fork the repo and send us a pull request, we will do our best to get back to you quickly, thank you for your patience!