- Notifications
You must be signed in to change notification settings - Fork122
☝️🏃 Modern Relay Starter Kit - Integrated with Relay, GraphQL, Express, ES6/ES7, JSX, Webpack, Babel, Material Design Lite, and PostCSS
License
lvarayut/relay-fullstack
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
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 usingHot-reload to real time update the screen whenever any code changes.
Check out theLive demo on Heroku.
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 theAdvance section.
First, you needwatchman
installed, please follow itsinstallation 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 tohttp://localhost:3000
for Relay application orhttp://localhost:8000
for GraphiQL.
Relay Fullstack is integrated with Yeoman that allows you to choose technologies that suit your needs, the options are including database, flow, and etc.
Installyo
andgenerator-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 tohttp://localhost:3000
for Relay application orhttp://localhost:8000
for GraphiQL.
NOTE: generator-relay-fullstack is currently working with minimal functionalities. Database, Flow, and Sub-generator are work-in-progress.
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 tohttp://localhost:3000
.
Before getting started, make sure you already installed theHeroku 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 usingheroku open
.
Whenever you start a server, it will automatically executeupdateSchema.js
script in order to compile the schema definitions, defined inschema.js
, toschema.json
andschema.graphql
. This is required by Relay framework. However, you could also run the script manually:
$ npm run update
├── 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
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.
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.
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.
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.
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.
- Relay Fullstack is inspired byrelay-starter-kit. Please take a look at the original code to learn more.
- Handcrafted by Varayut Lerdkanlayanawat and maintained with ❤️ byNigel Schuster,Nicholas Romero, andawesome contributors.
lvarayut | ncrmro | Neitsch | maksugr | AdamZaczek | BlakeBrown |
ianaya89 | crucialfelix | arnif | jtfell | kennydee | kkostov |
lexun | narongdejsrn | sankalpk | jg123 |
About
☝️🏃 Modern Relay Starter Kit - Integrated with Relay, GraphQL, Express, ES6/ES7, JSX, Webpack, Babel, Material Design Lite, and PostCSS
Topics
Resources
License
Code of conduct
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.