GithubHelp home page GithubHelp logo

aiartinc / universalrelayboilerplate Goto Github PK

View Code? Open in Web Editor NEW

This project forked from stevenornelas/universalrelayboilerplate

0.0 2.0 0.0 32.97 MB

React modular boilerplate based on Relay as data layer and Apache Cassandra for persistence. Material-UI, GraphQL, JWT, Node.js, optional DynamoDB.

Home Page: http://codefoundries.com/products/UniversalRelayBoilerplate.html

License: MIT License

CSS 5.49% JavaScript 93.92% HTML 0.58%

universalrelayboilerplate's Introduction

Universal Relay Boilerplate (URB)

Boilerplate + examples for universal web application with React, Material-UI, Relay, GraphQL, JWT, Node.js, Apache Cassandra / Elassandra.

Technologies used in Rebar and Universal Relay Boilerplate

For the most up to date list of technologies used please go to CodeFoundries.com.

Client side

Technology Description
Express Fast, unopinionated, minimalist web framework for Node.js
found Extensible route-based routing for React applications.
JSS JSS is a more powerful abstraction over CSS. It uses JavaScript as a language to describe styles in a declarative and maintainable way.
Material UI Library for implementing Material Design in React. All user interface in this kit is built exclusively with Material UI components.
React The best library for building modern browser-based and mobile UIs.
React Helmet Reusable React component will manage all of your changes to the document head with support for document title, meta, link, script, and base tags.
React Native React Native (currently not available) enables you to build world-class application experiences on native platforms using a consistent developer experience based on JavaScript and React.
Relay A Javascript framework for building data-driven react applications.

Server side

Technology Description
Apache Cassandra The right choice when you need scalability and high availability without compromising performance. Linear scalability and proven fault-tolerance on commodity hardware or cloud infrastructure make it the perfect platform for mission-critical data. Cassandra's support for replicating across multiple datacenters is best-in-class, providing lower latency for your users and the peace of mind of knowing that you can survive regional outages.
Data Loader Generic utility to be used as part of your application's data fetching layer to provide a consistent API over various backends and reduce requests to those backends via batching and caching.
Elassandra Elassandra Combines Cassandra And Elasticsearch In A Single Powerful Integrated Solution. URB works well with Elassandra.
Express GraphQL A Node.js express library that allows the creation of GraphQL servers.
GraphQL A query language for describing the capabilities and requirements of data models for client‐server applications.
JWT JSON Web Tokens is an industry standard RFC 7519 method for representing claims securely between two parties.
Node.js Event-driven, non-blocking I/O runtime based on JavaScript that is lightweight and efficient.

Development tools

Technology Description
Babel Transpiles ESX to ESX and performs relay transformations.
ESLint A fully pluggable tool for identifying and reporting on patterns in JavaScript.
Flow Static type checker, designed to find type errors in JavaScript programs.
GraphiQL Graphical interactive in-browser GraphQL IDE. It allows to test the entire schema provided by GraphQL and can be an excellent tool for exploring the boilerplate, as well as a part of applications built on top of it.
Husky Git hooks for eslint and prettier.
Prettier Code formatter for javaScript.
React Hot Loader Allows tweaking of React components in real time.
Webpack Bundles npm packages, application Java Script, CSS, images, etc. into bundles.

Development Setup

For the most up to date setup instructions please go to the development setup instructions.

Initial Development Machine Setup

The setup is for OS X only. Prerequisites:

  • Install Node.js minimum version: 8.6.0.
  • Install Git minimum version: 5.0.0.
  • (currently not available) Install react-native-cli run npm install -g react-native-cli for app development with React Native only.
  • Install yarn run npm install -g yarn

Initial Project setup on local machine

In order to set up the project locally, perform the following steps:

Action Notes
git clone https://github.com/codefoundries/UniversalRelayBoilerplate Clone from github. Alternatively, you can download the source and update in some different way.
yarn Install node packages.
yarn setup-local Set up default configuration for running the boilerplate.

In addition to the above, you might want to specify JWT_SECRET by modifying the .env file. This step can be skipped if you do not care about the actual security and simply want to get the project running.

Running in development mode

In order to develop, three servers need to be started:

  • Web server.
  • Webpack server.
  • (currently not available) React Native packager.

This can be done with one command:

  • Start application HTTP and Webpack server: yarn dev.

To open the app:

  • Navigate to http://localhost:26005, or whatever IP was assigned when running yarn update-ip or after installation.

(currently not available) To run the iOS app in the emulator:

  • If the IP of your development machine has changed, run yarn update-ip.
  • Run react-native run-ios.

Configuring Cassandra locally

  • Install and configure Cassandra following the steps in Cassandra Installation on Mac.
  • Update the name of the database and the database server in /.env, or use the defaults. The defaults are:
CASSANDRA_CONNECTION_POINTS=localhost
CASSANDRA_KEYSPACE=urb
  • Configure to use Cassandra as default persister: yarn update-default-persister -- cassandra.
  • Create the database with yarn setup-database.

Further Details

We keep the information about the Universal Relay Boilerplate and Rebar updated on our website:

Architecture and Developer Resources

Architecture Details

The following documents explain in detail certain aspects of the architecture in depth:

Additional resources

The following documents, while not explicitly related to the boilerplate, can be useful while running and modifying the kit:

Universal Relay Boilerplate (URB) Classic

The previous version of this repository with Material-UI 0.18.x and Relay 0.10 is available at Universal Relay Boilerplate Classic. The current version is unfinished and under heavy development. Additional units with Windows support and DynamoDB support can be found at Universal Relay Boilerplate Extra. The following mostly apply to URB classic. Will be removed once updated versions are created.

universalrelayboilerplate's People

Contributors

brunoguerra avatar m1chaeltran avatar ncrmro avatar querl avatar robblovell avatar stevenornelas avatar thelordoftheboards avatar wtgtybhertgeghgtwtg 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.