All Projects → ailoitte → node-mongodb-graphql-starter

ailoitte / node-mongodb-graphql-starter

Licence: GPL-3.0 license
A boilerplate for Node.js, MongoDB & GraphQL applications.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to node-mongodb-graphql-starter

NodeScalableArchitecture
A Scalable Node Architecture/Server. This repository contains a complete implementation of writing scalable nodejs server/architecture on my medium blog.
Stars: ✭ 62 (+10.71%)
Mutual labels:  mongoose, jwt-authentication
Nodejs Rest Api Project Structure Express
Nodejs project structure practices for building RESTful APIs using Express framework and MongoDB.
Stars: ✭ 134 (+139.29%)
Mutual labels:  mongoose, jwt-authentication
Express Boilerplate
🚀 Starter project for a RESTful API in Node with Express & mongoose component-based
Stars: ✭ 9 (-83.93%)
Mutual labels:  mongoose, jwt-authentication
Quora
Building An Exclusive Community of PEC Graduates and Students.The main features of the website are “PEC Quora” and “PEC Connect”
Stars: ✭ 26 (-53.57%)
Mutual labels:  mongoose, jwt-authentication
TvrboReact
Dream starter project: React, Redux, React Router, Webpack
Stars: ✭ 13 (-76.79%)
Mutual labels:  mongoose, jwt-authentication
Nest Angular
NestJS, Angular 6, Server Side Rendering (Angular Universal), GraphQL, JWT (JSON Web Tokens) and Facebook/Twitter/Google Authentication, Mongoose, MongoDB, Webpack, TypeScript
Stars: ✭ 307 (+448.21%)
Mutual labels:  mongoose, jwt-authentication
Jwt Node Vue
Repositório responsável pelo primeiro projeto da série de vídeos: Coding Stuff.
Stars: ✭ 29 (-48.21%)
Mutual labels:  mongoose, jwt-authentication
BEW-1.3-Server-Side-Architectures-and-Frameworks
🔐 Build on knowledge of Resourceful and RESTful patterns and dive deep into the Node and Express ecosystem.
Stars: ✭ 19 (-66.07%)
Mutual labels:  mongoose, jwt-authentication
arc
Fullstack open source Invoicing application made with MongoDB, Express, React & Nodejs (MERN)
Stars: ✭ 1,291 (+2205.36%)
Mutual labels:  mongoose, jwt-authentication
Pharmacy-Mangment-System
👨‍💻 🏥 MEAN stack Pharmacy Management system.
Stars: ✭ 229 (+308.93%)
Mutual labels:  mongoose, jwt-authentication
node-rest-api-scaffold
This project is an initial NodeJS Rest API scaffold for developers
Stars: ✭ 24 (-57.14%)
Mutual labels:  mongoose, jwt-authentication
pothole detection
By using this app users can report the potholes on road by clicking a photo via our app and if a pothole is detected by Machine Learning modal then it is saved to our Database from where officials can view the specifics like location,reported by and official can resolve the request.User are notified by email for every update regarding their request
Stars: ✭ 17 (-69.64%)
Mutual labels:  mongoose, jwt-authentication
node-express-mongo-passport-jwt-typescript
A Node.js back end web application with REST API, user JWT authentication and MongoDB data storage using TypeScript
Stars: ✭ 51 (-8.93%)
Mutual labels:  mongoose, jwt-authentication
Node Express Mongodb Jwt Rest Api Skeleton
This is a basic API REST skeleton written on JavaScript using async/await. Great for building a starter web API for your front-end (Android, iOS, Vue, react, angular, or anything that can consume an API). Demo of frontend in VueJS here: https://github.com/davellanedam/vue-skeleton-mvp
Stars: ✭ 603 (+976.79%)
Mutual labels:  mongoose, jwt-authentication
task-manager
Task Manager App
Stars: ✭ 19 (-66.07%)
Mutual labels:  mongoose, jwt-authentication
Tvrboreact
Dream starter project: React, Redux, React Router, Webpack
Stars: ✭ 13 (-76.79%)
Mutual labels:  mongoose, jwt-authentication
react-nodejs-mongodb-crud
👨‍💻 Fullstack web app built with MongoDB, NodeJs, React and Redux. Features: Protected routes client/server side, MaterialUI layout
Stars: ✭ 91 (+62.5%)
Mutual labels:  mongoose, jwt-authentication
Node Express Mongoose Passport Jwt Rest Api Auth
Node, express, mongoose, passport and JWT REST API authentication example
Stars: ✭ 146 (+160.71%)
Mutual labels:  mongoose, jwt-authentication
express-mongo-jwt-boilerplate
Express Mongo JsonWebToken boilerplate
Stars: ✭ 100 (+78.57%)
Mutual labels:  mongoose, jwt-authentication
Auth-using-Vuejs-express-jwt-nodejs
Login and signup form and authentication using Vue.js, express, mongodb, JWT and bootstrap-vue
Stars: ✭ 17 (-69.64%)
Mutual labels:  mongoose, jwt-authentication

NodeJs + MongoDB + GraphQL Starter

NodeJs + MongoDB + GraphQL Starter

A boilerplate for Node.js, MongoDB & GraphQL applications.

💡 ES6 code

I started this project to simplify and make it ease of use. I also tried to make it as generic and reusable as possible to cover most use cases of GraphQL apps, without being too specific.

Table of Contents

Features

  • Local Authentication using Email and Password
  • MVC Project Structure
  • GraphQL Mutations, Queries, Resolvers
  • Account Management
    • Register
    • Login
    • Update profile
    • Profile Details
    • Add user address
    • Update Address
    • Remove Address
  • Cron job scheduler
  • JSON Web Token (JWT) Sign in

Prerequisites

  • MongoDB
  • Node.js 6.0+
  • Command Line Tools
  •  Mac OS X: Xcode (or OS X 10.9+: xcode-select --install)
  •  Windows: Visual Studio
  •  Ubuntu /  Linux Mint: sudo apt-get install build-essential
  •  Fedora: sudo dnf groupinstall "Development Tools"
  •  OpenSUSE: sudo zypper install --type pattern devel_basis

Getting Started

The easiest way to get started is to clone the repository:

# Get the latest snapshot
git clone --depth=1 https://github.com/ailoitte/node-mongodb-graphql-starter.git myproject

# Change directory
cd myproject

# Install NPM dependencies
npm install

# Then simply start your app
node app.js

Note: I highly recommend installing Nodemon. It watches for any changes in your node.js app and automatically restarts the server. Once installed, instead of node app.js use nodemon app.js. It will save you a lot of time in the long run, because you won't need to manually restart the server each time you make a small change in code. To install, run sudo npm install -g nodemon.

Packages

Package Description
async Utility library that provides asynchronous control flow.
bcrypt-nodejs Library for hashing and salting user passwords.
connect-mongo MongoDB session store for Express.
dotenv Loads environment variables from .env file.
express Node.js web framework.
body-parser Express 4 middleware.
morgan Express 4 middleware.
mongoose MongoDB ODM.
nodemailer Node.js library for sending emails.
request Simplified HTTP request library.
lodash Handy JavaScript utilities library.
validator Used in conjunction with express-validator.
jsonwebtoken An implementation of JSON Web Tokens.
mongoose-paginate MongoDB mongoose pagination
moment JS date library- parsing,validating,manipulating,andformatting dates.
mime Comprehensive MIME type mapping API based on mime-db module.
firebase-admin Push notification
aws-sdk AWS client SDK
multer-s3 Upload multipart to S3
winston async logging library
cron Cron job

Query & Mutation

ADD USER

mutation {
  addUser(name: "Sunil Kumar", email: "[email protected]", mobileNumber:"8867371492", password: "123567"){
    id
    name
    email
    mobileNumber
  }
}

UPDATE

mutation {
  updateUser(name: "Ravi Sanker"){
    id
    name
    email
    mobileNumber
  }
}

LOGIN

mutation {
  loginUser(mobileNumber: "8867371492", password:"1234567") {
    id
    token
    name
    email
  }
}

ADD ADDRESS

mutation {
  addUserAddress(street: ["s1", "s2"], 
    city:"Dehradun", 
    countryId: "IN", 
    addressType: "home",
    postcode:"23455"
  ) {
    id
    street
    city
    countryId
    landmark
    locality
    addressType
    postcode
  }
}

UPDATE ADDRESS

mutation {
  updateUserAddress(id: "59e4d803d3528728b99b3c53",
    street: ["Nesh", "Indra Road"], 
    city:"Dehradun", 
    countryId: "IN", 
    addressType: "home",
    postcode:"234551"
  ) {
    id
    street
    city
    countryId
    landmark
    locality
    addressType
    postcode
  }
}

DELETE ADDRESS

mutation {
  deleteUserAddress(
   id: "59e4dc6b875e8829539b20d7"
  ){
    message
  }
}

ALL ADDRESS

query {
  me{
    address{
      street
      city
    }
  }
}

ADDRESS BY ID

query {
  userAddress(id: "59e4d803d3528728b99b3c53"){
    id
    city
    street
    countryId
  }
}
}
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].