All Projects β†’ lvarayut β†’ Relay Fullstack

lvarayut / Relay Fullstack

Licence: mit
β˜οΈπŸƒ Modern Relay Starter Kit - Integrated with Relay, GraphQL, Express, ES6/ES7, JSX, Webpack, Babel, Material Design Lite, and PostCSS

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Relay Fullstack

Create Graphql
Command-line utility to build production-ready servers withΒ GraphQL.
Stars: ✭ 441 (-55.27%)
Mutual labels:  graphql, relay, boilerplate, yeoman
React Starter Kit
React Starter Kit β€” front-end starter kit using React, Relay, GraphQL, and JAM stack architecture
Stars: ✭ 21,060 (+2035.9%)
Mutual labels:  graphql, boilerplate, relay, scaffolding
Generate
A new command line tool and developer framework for scaffolding out GitHub projects. Generate offers the robustness and configurability of Yeoman, the expressiveness and simplicity of Slush, and more powerful flow control and composability than either.
Stars: ✭ 238 (-75.86%)
Mutual labels:  boilerplate, yeoman, scaffolding
React App
Create React App with server-side code support
Stars: ✭ 614 (-37.73%)
Mutual labels:  graphql, relay, boilerplate
Pollinate
Template your base files and generate new projects from Git(Hub).
Stars: ✭ 213 (-78.4%)
Mutual labels:  boilerplate, yeoman, scaffolding
Graphql Starter
πŸ’₯ Monorepo template (seed project) pre-configured with GraphQL API, PostgreSQL, React, Relay, and Material UI.
Stars: ✭ 3,377 (+242.49%)
Mutual labels:  graphql, boilerplate, relay
Graphql Dataloader Boilerplate
Very simple boilerplate using GraphQL and DataLoader
Stars: ✭ 405 (-58.92%)
Mutual labels:  graphql, relay, boilerplate
React Firebase Starter
Boilerplate (seed) project for creating web apps with React.js, GraphQL.js and Relay
Stars: ✭ 4,366 (+342.8%)
Mutual labels:  graphql, relay, boilerplate
Sao
βš” Futuristic scaffolding tool
Stars: ✭ 966 (-2.03%)
Mutual labels:  boilerplate, yeoman, scaffolding
Graphqlbundle
This bundle provides tools to build a complete GraphQL server in your Symfony App.
Stars: ✭ 628 (-36.31%)
Mutual labels:  graphql, relay
Este
This repo is suspended.
Stars: ✭ 5,467 (+454.46%)
Mutual labels:  graphql, relay
Js Graphql Intellij Plugin
GraphQL language support for WebStorm, IntelliJ IDEA and other IDEs based on the IntelliJ Platform.
Stars: ✭ 686 (-30.43%)
Mutual labels:  graphql, relay
Pup
The Ultimate Boilerplate for Products.
Stars: ✭ 563 (-42.9%)
Mutual labels:  graphql, boilerplate
Bozon
πŸ›  Command line tool for building, testing and publishing modern Electron applications
Stars: ✭ 687 (-30.32%)
Mutual labels:  boilerplate, scaffolding
Graphql Ruby
Ruby implementation of GraphQL
Stars: ✭ 4,931 (+400.1%)
Mutual labels:  graphql, relay
Adrenaline
Simple Relay alternative
Stars: ✭ 720 (-26.98%)
Mutual labels:  graphql, relay
Graphene
GraphQL framework for Python
Stars: ✭ 6,964 (+606.29%)
Mutual labels:  graphql, relay
Laravel Vue Boilerplate
🐘 A Laravel 6 SPA boilerplate with a users CRUD using Vue.js 2.6, GraphQL, Bootstrap 4, TypeScript, Sass, and Pug.
Stars: ✭ 472 (-52.13%)
Mutual labels:  graphql, boilerplate
Rebar
Multi-tenant SaaS boilerplate + examples for universal web application with React, Material-UI, Relay, GraphQL, JWT, Node.js, C* DB - Cassandra/Elassandra/Scylla.
Stars: ✭ 690 (-30.02%)
Mutual labels:  relay, boilerplate
Generator Node Module
A Yeoman module to author Node libraries with Prettier, Jest, Flow and Babel.
Stars: ✭ 16 (-98.38%)
Mutual labels:  boilerplate, yeoman





Dependency Status devDependency Status

Relay Fullstack is a Relay scaffolding application that aims to help you get up and running a project without worrying about integrating tools. It comes with many modern technologies; Relay, GraphQL, Express, ES6/ES7, JSX, Webpack, Babel, Material Design Lite, and PostCSS. Relay Fullstack is also using Hot-reload to real time update the screen whenever any code changes.

Example

Demo

Check out the Live demo on Heroku.

Usage

Basic

The basic installation contains only general technologies needed by most of the projects, Relay Fullstack is totally unopinionated. If you wanted to include a database, flow, or any specific technologies, please see the Advance section.

First, you need watchman installed, please follow its installation guide. Then, clone the repository to your local directory

$ git clone https://github.com/lvarayut/relay-fullstack.git
$ cd relay-fullstack

Install all dependencies & Start developing

$ npm install
$ npm start

Launch your favorite web browser and go to http://localhost:3000 for Relay application or http://localhost:8000 for GraphiQL.

Advance

Relay Fullstack is integrated with Yeoman that allows you to choose technologies that suit your needs, the options are including database, flow, and etc.

Install yo and generator-relay-fullstack globally

$ npm install -g yo generator-relay-fullstack

Create a new directory and start the generator, it will prompt some questions to help you get up and running

$ mkdir relay-fullstack && cd $_
$ yo relay-fullstack
$ npm start

Launch your favorite web browser and go to http://localhost:3000 for Relay application or http://localhost:8000 for GraphiQL.

NOTE: generator-relay-fullstack is currently working with minimal functionalities. Database, Flow, and Sub-generator are work-in-progress.

Deployment

Local machine

In order to deploy a project, it is a good practice to minify all JavaScript files, stop spawning the GraphiQL server, pull off some duplicate dependencies, and remove all unnecessary scripts, for example, Hot-reload. All of these can be done by executing the following command:

$ npm run deploy

Again, launch your favorite web browser and go to http://localhost:3000.

Heroku

Before getting started, make sure you already installed the Heroku Toolbelt, which is a command-line tooling for managing Heroku applications that makes it easy to deploy an application in a few steps:

$ heroku create                     # Create a new Heroku application
$ git push heroku master            # Push your code into the created Heroku repository
$ heroku ps:scale web=1             # Run the deployed application

That is it! Now, open the application on your default browser using heroku open.

Schema

Whenever you start a server, it will automatically execute updateSchema.js script in order to compile the schema definitions, defined in schema.js, to schema.json and schema.graphql. This is required by Relay framework. However, you could also run the script manually:

$ npm run update

Project Structure

β”œβ”€β”€ client                          - All of the client side code resides in this folder
β”‚   β”œβ”€β”€ assets                      - Images and fonts
β”‚   β”œβ”€β”€ components                  - Relay containers, React components, and SCSS files used in the components
β”‚   β”‚   └── variables.scss          - Common SCSS variables
β”‚   β”œβ”€β”€ routes                      - React-router-relay 
β”‚   β”‚   β”œβ”€β”€ Route.js                - All route definitions
β”‚   β”‚   └── ViewerQuery.js          - Entry node of a GraphQL query
β”‚   β”œβ”€β”€ index.html                  - HTML template file used by html-webpack-plugin 
β”‚   └── index.js                    - Client entry point
β”œβ”€β”€ server                          - All of the server side code resides in this folder
β”‚   β”œβ”€β”€ config                      - Configuration 
β”‚   β”‚   └── environment             - Separate configuration for each environment
β”‚   β”‚       β”œβ”€β”€ development.js      - Development configuration
β”‚   β”‚       β”œβ”€β”€ index.js            - Common configuration used in any environment
β”‚   β”‚       β”œβ”€β”€ production.js       - Production configuration
β”‚   β”‚       └── test.js             - Test configuration
β”‚   β”œβ”€β”€ data                        - Data and APIs 
β”‚   β”‚   β”œβ”€β”€ database.js             - Mock up database which should be replaced with your real database logic
β”‚   β”‚   β”œβ”€β”€ schema.graphql          - Compiled schema in a readable form
β”‚   β”‚   β”œβ”€β”€ schema.js               - Schema definitions
β”‚   β”‚   └── schema.json             - Compiled schema to be used by Relay 
β”‚   β”œβ”€β”€ utils                       - Utilities 
β”‚   β”‚   β”œβ”€β”€ babelRelayPlugin.js     - Babel-relay-plugin provided by Relay
β”‚   β”‚   └── updateSchema.js         - Code for compiling the defined schema to schema.json and schema.graphql
β”‚   └── index.js                    - Server entry point
β”œβ”€β”€ package.json                    - List of dependencies
β”œβ”€β”€ webpack.config.js               - Webpack configuration

Technologies

Frameworks

Relay - A JavaScript framework for building data-driven react applications. It is required to be used with React and GraphQL.

React - A JavaScript library for building user interfaces. It introduces many great concepts, such as, Virtual DOM, Data flow, etc.

GraphQL - GraphQL is a query language and execution engine tied to any backend service.

Express - Express is a minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications.

Module bundler & Syntax transformers

Webpack - Webpack is a module bundler that takes modules with dependencies and generates static assets representing those modules.

Babel - Babel is a JavaScript compiler which allows you to use next generation, ES6/ES7, JavaScript, today.

Languages

ES6/ES7 - ECMAScript 6, also known as ECMAScript 2015, is the latest version of the ECMAScript standard. ES6 is a significant update to the language.

JSX - JSX is a JavaScript syntax extension that looks similar to XML. You can use a simple JSX syntactic transform with React.

Designs

Material Design Lite - Material Design Lite lets you add a Material Design look and feel to your websites.

PostCSS - PostCSS is a tool for transforming CSS with JavaScript. It has roughly 200 plugins to help you write CSS easier.

Additional Tools

React transform HMR - A React Transform that enables hot reloading React classes.

React router relay - Relay integration for React Router.

Eslint - The pluggable linting utility for JavaScript and JSX.

Autoprefixer - Parse CSS and add vendor prefixes to rules.

Precss - Use Sass-like markup in your CSS.

Nodemon - Monitor for any changes in your node.js application and automatically restart the server.

CSS Modules - CSS file in which all class names and animation names are scoped locally by default.

Credits

Contributors

lvarayut ncrmro Neitsch maksugr AdamZaczek BlakeBrown
lvarayut ncrmro Neitsch maksugr AdamZaczek BlakeBrown
ianaya89 crucialfelix arnif jtfell kennydee kkostov
ianaya89 crucialfelix arnif jtfell kennydee kkostov
lexun narongdejsrn sankalpk jg123
lexun narongdejsrn sankalpk jg123

License

MIT Β© Varayut Lerdkanlayanawat

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].