- Notifications
You must be signed in to change notification settings - Fork151
🌈 Simple Fullstack GraphQL Application. API built with Express + GraphQL + Sequelize (supports MySQL, Postgres, Sqlite and MSSQL). WebApp built with React + Redux to access the API. Written in ES6 using Babel + Webpack.
License
atulmy/fullstack-graphql
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Simple Demo Application
API built with Node + Express + GraphQL + Sequelize (supports MySQL, Postgres, Sqlite and MSSQL).
WebApp built with React + Redux.
Written in ES6 using Babel + Webpack.
- List thoughts
- Add thought
- Delete thought
- View single thought
- Clone repo
git clone git@github.com:atulmy/fullstack-graphql.git fullstack-graphql - Install NPM modules API
cd apiandnpm install - Install NPM modules Webapp
cd webandnpm install - Modify
/api/src/config/database.jsonfor database credentials - Modify
/api/src/config/config.jsonfor API port (optional) - Modify
/web/.envfor web port (optional) - Run API
cd apiandnpm start, browse GraphiQL athttp://localhost:8000/ - Run Webapp
cd webandnpm start, browse web athttp://localhost:3000/
[nodemon] starting `babel-node src/index.js --presets es2015,stage-2`SETUP - Connecting database...SETUP - Loading modules...SETUP - GraphQL...SETUP - Syncing database tables...INFO - Database connected.INFO - Database sync complete.SETUP - Starting server...INFO - Server started on port 3000.Video:MOV
fullstack-graphql ├── api (api.example.com) │ ├── src │ │ ├── config │ │ ├── models │ │ ├── schema │ │ ├── setup │ │ └── index.js │ │ │ └── package.json │ ├── web (example.com) │ ├── public │ ├── src │ │ ├── components │ │ ├── setup │ │ └── index.js │ │ │ ├── .env │ └── package.json │ ├── .gitignore └── README.md- Adding new Module (Eg: Users):
- Copy
/api/src/models/thought.jsto/api/src/models/user.jsand modify the file for table name and respective fields - Add an entry to the
modelsobject in/api/src/models/index.js - Copy
/api/src/schema/thoughtsto/api/src/schema/usersand modifytype.js,resolvers.jsandfields/query.jsandfields/mutations.js - Import
/api/src/schema/users/fields/query.jsin/api/src/schema/query.js - Import
/api/src/schema/users/fields/mutations.jsin/api/src/schema/mutations.js
- Copy
- Adding new Module (Eg: Users):
- Create folder
usersunder/web/src/components/ - Create your Container and Resusable components under
/web/src/components/users - Create
apifolder under/web/src/components/users - Add
actions.jswhere all your Redux Action Types and Actions will reside (refer/web/src/components/thoughts/api/actions.js) - Add
state.jswhere all your respective Reducers will recide (refer/web/src/components/thoughts/api/state.js) - Import the module state in
/web/src/setup/store.jsto make it avaliable to the app - Encapsulate all your User related code in
/web/src/components/users
- Create folder
- Adding new Route (Eg:
/users):- Add a new entry to
routesobject in/web/src/setup/routes.js(eguser: { list: '/list' }) - Edit
/web/src/components/App.jsand add the route entry
- Add a new entry to
These queries are generated on client side usingqueryBuilder() helper defined in/web/src/setup/helpers.js
Query - Get List query { thoughts { id, name, thought }} | Response { "data": { "thoughts": [ { "id": 1, "name": "Arya Stark", "thought": "A girl has no name" }, { "id": 2, "name": "Jon Snow", "thought": "I know nothing" } ] }} |
Query - Get by Param query { thought(id: 1) { id, name, thought }} | Response { "data": { "thought": { "id": 1, "name": "Arya", "thought": "A girl has no name" } }} |
Mutation - Create mutation { thoughtCreate( name: "Tyrion Lannister", thought:"I drink and I know things" ) { id }} | Response { "data": { "thoughtCreate": { "id": 3 } }} |
Mutation - Remove mutation { thoughtRemove(id: 3) { id }} | Response { "data": { "thoughtRemove": { "id": null } }} |
Facebook Groups:NodeJS •ReactJS •GraphQL
Reddit:NodeJS •ReactJS •GraphQL
Following projects have been built with or inspired fromfullstack-graphql
- Crate - Get monthly subscription of trendy clothes and accessories -GitHub
- HIRESMART - Application to streamline hiring process -GitHub
- Would really appreciate if you add your project to this list by sending a PR
- Start learning by looking at sample codes:#LearnByExamples
If you liked this project, please donate to support it ❤️
Copyright (c) 2017-18 Atul Yadavhttp://github.com/atulmy
The MIT License (http://www.opensource.org/licenses/mit-license.php)
About
🌈 Simple Fullstack GraphQL Application. API built with Express + GraphQL + Sequelize (supports MySQL, Postgres, Sqlite and MSSQL). WebApp built with React + Redux to access the API. Written in ES6 using Babel + Webpack.
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Uh oh!
There was an error while loading.Please reload this page.
Contributors2
Uh oh!
There was an error while loading.Please reload this page.


