All Projects β†’ rafaesc β†’ fullstack-graphql-angular

rafaesc / fullstack-graphql-angular

Licence: MIT license
Simple Fullstack GraphQL Application with Angular CLI + Redux. API built with Typescript + Express + GraphQL + Sequelize (supports MySQL, Postgres, Sqlite and MSSQL). WebApp built with Angular CLI + Redux + Async Middleware to access the API.

Programming Languages

typescript
32286 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to fullstack-graphql-angular

Fullstack Graphql
🌈 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.
Stars: ✭ 955 (+1325.37%)
Mutual labels:  graphql-client, expressjs, graphql-server, graphql-schema
relay-compiler-plus
Custom relay compiler which supports persisted queries
Stars: ✭ 68 (+1.49%)
Mutual labels:  graphql-client, graphql-server, graphql-schema
Hotchocolate
Welcome to the home of the Hot Chocolate GraphQL server for .NET, the Strawberry Shake GraphQL client for .NET and Banana Cake Pop the awesome Monaco based GraphQL IDE.
Stars: ✭ 3,009 (+4391.04%)
Mutual labels:  graphql-client, graphql-server, graphql-schema
36 Graphql Concepts
πŸ“œ 36 concepts every GraphQL developer should know.
Stars: ✭ 209 (+211.94%)
Mutual labels:  graphql-client, graphql-server, graphql-schema
Altair
✨⚑️ A beautiful feature-rich GraphQL Client for all platforms.
Stars: ✭ 3,827 (+5611.94%)
Mutual labels:  graphql-client, ngrx, graphql-server
showcase
A Full Stack Journey with Micro Services and Micro Front Ends. Using dapr, kubernetes, react module federation and web assembly,
Stars: ✭ 45 (-32.84%)
Mutual labels:  graphql-client, graphql-server, fullstack
kobby
Kobby is a codegen plugin of Kotlin DSL Client by GraphQL schema. The generated DSL supports execution of complex GraphQL queries, mutation and subscriptions in Kotlin with syntax similar to native GraphQL syntax.
Stars: ✭ 52 (-22.39%)
Mutual labels:  graphql-client, graphql-schema
express-crud-router
Simply expose resource CRUD (Create Read Update Delete) routes for Express & Sequelize. Compatible with React Admin Simple Rest Data Provider
Stars: ✭ 109 (+62.69%)
Mutual labels:  expressjs, sequelize
angular2-instagram
πŸ”₯Instagram like photo filter playground built with Angular2 (Web | Desktop)
Stars: ✭ 91 (+35.82%)
Mutual labels:  ngrx, angular2
ngrx-form
Reactive Forms bindings for NGRX and Angular
Stars: ✭ 46 (-31.34%)
Mutual labels:  ngrx, angular2
protoc-gen-twirpql
Generate A GraphQL Layer from A Twirp Server: https://twirpql.dev
Stars: ✭ 49 (-26.87%)
Mutual labels:  graphql-client, graphql-server
NodeAngular
πŸš€ Full Stack Framework BΓ©ta : mean with last Angular and Node (Example)
Stars: ✭ 13 (-80.6%)
Mutual labels:  sequelize, fullstack
graphql-spotify
GraphQL Schema And Resolvers For Spotify Web API
Stars: ✭ 55 (-17.91%)
Mutual labels:  graphql-server, graphql-schema
angular2-webpack-advance-starter
An advanced Angular2 Webpack Starter project with support for ngrx/store, ngrx/effects, ng2-translate, angulartics2, lodash, NativeScript (*native* mobile), Electron (Mac, Windows and Linux desktop) and more.
Stars: ✭ 49 (-26.87%)
Mutual labels:  ngrx, angular2
nim-graphql
Nim implementation of GraphQL with sugar and steroids
Stars: ✭ 47 (-29.85%)
Mutual labels:  graphql-client, graphql-server
node-crudapi-ts
CRUD boilerplate for create Node Restful API's with Express Framework and Sequelize ORM written in Typescript.
Stars: ✭ 41 (-38.81%)
Mutual labels:  expressjs, sequelize
mean-ionic-ngrx
Monorepo as Microservices: Full MEAN stack with Angular 7, Ionic 4 and ReactiveX API (ngrx/Store + ngrx/Effects) + i18n/ngx-translate + Express NodeJS REST API servers micro-services + JWT Authentication + UnitTest/e2e exemple + Travis + DevOps scripts and many more...
Stars: ✭ 60 (-10.45%)
Mutual labels:  ngrx, expressjs
ionic2.0-angularfire
this a basic application for Ionic 2.0.rc5 with AngularFire2 with ngrx/store & ngrx/effects to manage state
Stars: ✭ 71 (+5.97%)
Mutual labels:  ngrx, angular2
todo-list
A practical web application built with Node.js, Express, and MySQL for you to readily record, view, and manage your tasks with an account: Create, view, edit, delete, filter, and sort expenses are as easy as pie πŸ₯§
Stars: ✭ 18 (-73.13%)
Mutual labels:  expressjs, sequelize
dhiwise-nodejs
DhiWise Node.js API generator allows you to instantly generate secure REST APIs. Just supply your database schema to DhiWise, and a fully documented CRUD APIs will be ready for consumption in a few simple clicks. The generated code is clean, scalable, and customizable.
Stars: ✭ 224 (+234.33%)
Mutual labels:  expressjs, sequelize

logos

Fullstack GraphQL Angular

Created from fullstack graphql, implement additional support for Typescript, Angular CLI and ngrx.

Simple Demo Application

API built with Node + Express + GraphQL + Sequelize (supports MySQL, Postgres, Sqlite and MSSQL).

WebApp built with Angular CLI + Redux + Async Middleware.

Written in Typescript using Babel + Angular CLI.

πŸ“ Features

  • List thoughts
  • Add thought
  • Delete thought
  • View single thought

▢️ Running

  • Clone repo git clone [email protected]:rafaesc/fullstack-graphql-angular.git fullstack-graphql-angular
  • Install NPM modules API cd api and npm install
  • Install NPM modules Webapp cd webapp and npm install
  • Modify /api/src/config/database.json for database credentials
  • Modify /api/src/config/config.json for API port (optional)
  • Modify /webapp/.env for webapp port (optional)
  • Run API cd api, npm run build and npm start, browse GraphQL at http://localhost:3000/
  • Run Webapp cd webapp and npm start, browse webapp at http://localhost:4200/

Sample API logs

[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.

πŸ“Έ Screenshots

screenshot

πŸ— Core Structure

fullstack-graphql-angular
  β”œβ”€β”€ api (api.example.com)
  β”‚   β”œβ”€β”€ src
  β”‚   β”‚   β”œβ”€β”€ config
  β”‚   β”‚   β”œβ”€β”€ models
  β”‚   β”‚   β”œβ”€β”€ schema
  β”‚   β”‚   β”œβ”€β”€ setup
  β”‚   β”‚   └── index.js
  β”‚   β”‚
  β”‚   └── package.json
  β”‚
  β”œβ”€β”€ webapp (example.com)
  β”‚   β”œβ”€β”€ public
  β”‚   β”œβ”€β”€ src
  β”‚   β”‚   └── app
  β”‚   β”‚       β”œβ”€β”€@core
  β”‚   β”‚       β”œβ”€β”€@shared
  β”‚   β”‚       β”œβ”€β”€pages
  β”‚   β”‚       └──app.module.ts
  β”‚   β”‚
  β”‚   └── package.json
  β”‚
  β”œβ”€β”€ .gitignore
  └── README.md

πŸ“˜ Guides

API

  • Adding new Module (Eg: Users):
    • Copy /api/src/models/thought.ts to /api/src/models/user.ts and modify the file for table name and respective fields
    • Add an entry to the models object in /api/src/models/index.ts
    • Copy /api/src/schema/thoughts to /api/src/schema/users and modify type.ts, resolvers.ts and fields/query.ts and fields/mutations.ts
    • Import /api/src/schema/users/fields/query.ts in /api/src/schema/query.ts and add user to the fields
    • Import /api/src/schema/users/fields/mutations.ts in /api/src/schema/mutations.ts and add user to the fields
    • To activate these changes do cd api, npm run build and npm start

Webapp

  • Adding new Module (Eg: Users):
    • Create folder users under /webapp/src/app/pages/
    • Create your Module and Component under /webapp/src/app/pages/users
    • Add users.action.ts where all your Redux Action Types and Actions will reside (refer /webapp/src/app/@shared/store/actions/users.action.ts)
    • Add users.reducer.ts where all your respective Reducers will recide (refer /webapp/src/@shared/store/reducers/users.reducer.ts)
    • Add users.service.ts where all your respective Services will recide (refer /webapp/src/@shared/services/users.service.ts)
    • Add users.effect.ts where all your respective Effects will recide (refer /webapp/src/@shared/store/reducers/users.effect.ts)
    • Import the module state in /webapp/src/@shared/store/ to make it avaliable to the app
    • Import the Users Effect in /webapp/src/@core/core.module.ts
    • Encapsulate all your User related code in /webapp/src/app/pages/users
    • Adding new Route (Eg: /users):
    • Add a new entry to PAGES_ROUTES object in /webapp/src/app/pages/pages.routing.ts

Sample GraphQL Queries

These queries are generated on client side using queryBuilder() helper defined in /webapp/src/app/@shared/utils/helpers.ts

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
    }
  }
}
                
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].