Giter Site home page Giter Site logo

megaarchive's Introduction

Mega Archive Utility

Taken a monolithic repo style. Subfolders contain their own projects.

Project Structure

api/ - Master API. Handles spinning up all slaves, communicating and terminating them. Holds a queue of downloads and takes responses, indexing them for later search.

app/ - Public facing web app. All processing performed client side. No server side processing available. Queries master API for data. Built with React, Redux in ES6 syntax.

slave/ - Code base for slave API. Prebaked into images that will be spun up on each slave. Handles download, encrpytion and re-upload to archives of links.

Development

You need Yarn and NVM installed. Both should have brew/apt/yum packages from what I remember:

$ nvm i     # setup node + npm
$ nvm use

Run yarn in each directory to install package dependencies. Please use Yarn rather than NPM for package management. Very similar commands e.g. yarn add PACKAGE to install.

NPM commands can be found in each projects' package.json.

api/:

  • npm run start -> Start the API (built with Restify)
  • PORT=$PORT npm run start -> Start API on port $PORT
  • npm run prettier -- *.js -> Run Prettier on all .js files

app/:

  • npm run build -> Build with webpack
  • npm run start -> Start webpack server locally. Builds project first on start. Supports hot-reloading
  • npm run prettier -- *.js -> Run Prettier on all .js files

slave/:

  • npm run start -> Start the API (built with Restify)
  • PORT=$PORT npm run start -> Start API on port $PORT
  • npm run prettier -- *.js -> Run Prettier on all .js files

Linting + Code Quality

app/ uses ES6 syntax. api/ and slave/ use ES5.

Code is formatted with Prettier before commit. Might be an idea to install the prettier plugin for your favourite editor.

Config settings used. Set these if you install plugin for editor:

  • print-width -> 100 = how long each line is
  • single-quote -> Use single quotes instead of double
  • trailing-comma -> all = Add all trailing commas. ES6 AirBnB standard
  • parser -> babylon = required for ES6 syntax

megaarchive's People

Contributors

barwick avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.