All Projects → EQuimper → Nodejs Api Boilerplate

EQuimper / Nodejs Api Boilerplate

Licence: mit
A boilerplate for kickstart your nodejs api project with JWT Auth and some new Techs :)

Programming Languages

javascript
184084 projects - #8 most used programming language
es6
455 projects
es7
32 projects

Projects that are alternatives of or similar to Nodejs Api Boilerplate

Express React Boilerplate
🚀🚀🚀 This is a tool that helps programmers create Express & React projects easily base on react-cool-starter.
Stars: ✭ 32 (-91.21%)
Mutual labels:  eslint, prettier, mongodb, express, boilerplate
Express Mongoose Es6 Rest Api
💥 A boilerplate application for building RESTful APIs Microservice in Node.js using express and mongoose in ES6 with code coverage and JsonWebToken Authentication
Stars: ✭ 2,811 (+672.25%)
Mutual labels:  eslint, mongoose, mongodb, express, boilerplate
Mevn Cli
Light speed setup for MEVN(Mongo Express Vue Node) Apps
Stars: ✭ 696 (+91.21%)
Mutual labels:  eslint, prettier, mongoose, mongodb, express
Typescript Express Starter
🚀 TypeScript Express Starter
Stars: ✭ 238 (-34.62%)
Mutual labels:  eslint, prettier, mongoose, mongodb, express
Express Boilerplate
🚀 Starter project for a RESTful API in Node with Express & mongoose component-based
Stars: ✭ 9 (-97.53%)
Mutual labels:  eslint, mongoose, mongodb, express, boilerplate
Node Typescript Boilerplate
Minimalistic project template to jump start a Node.js back-end application in TypeScript. ESLint, Jest and type definitions included.
Stars: ✭ 1,061 (+191.48%)
Mutual labels:  eslint, prettier, express, node-js, boilerplate
Express Graphql Mongodb Boilerplate
A boilerplate for Node.js apps / GraphQL-API / Authentication from scratch - express, graphql - (graphql compose), mongodb (mongoose).
Stars: ✭ 288 (-20.88%)
Mutual labels:  mongoose, mongodb, express, boilerplate, docker-compose
Mern Boilerplate
Fullstack boilerplate with React, Redux, Express, Mongoose, Passport Local, JWT, Facebook and Google OAuth out of the box.
Stars: ✭ 112 (-69.23%)
Mutual labels:  mongoose, mongodb, express, boilerplate
Express Rest Boilerplate
⌛️ Express starter for building RESTful APIs
Stars: ✭ 1,794 (+392.86%)
Mutual labels:  mongoose, mongodb, express, boilerplate
Node Rem
Node REM - NodeJS Rest Express MongoDB and more: typescript, passport, JWT, socket.io, HTTPS, HTTP2, async/await, nodemailer, templates, pagination, docker, etc. Live Demo: https://node-rem-ngduc.vercel.app
Stars: ✭ 192 (-47.25%)
Mutual labels:  mongoose, mongodb, express, boilerplate
Saas
Build your own SaaS business with SaaS boilerplate. Productive stack: React, Material-UI, Next, MobX, WebSockets, Express, Node, Mongoose, MongoDB. Written with TypeScript.
Stars: ✭ 2,720 (+647.25%)
Mutual labels:  mongoose, mongodb, express, boilerplate
Lad
👦 Lad is the best Node.js framework. Made by a former Express TC and Koa team member.
Stars: ✭ 2,112 (+480.22%)
Mutual labels:  prettier, mongoose, mongodb, boilerplate
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 (+65.66%)
Mutual labels:  eslint, mongoose, mongodb, express
Angular Full Stack
Angular Full Stack project built using Angular, Express, Mongoose and Node. Whole stack in TypeScript.
Stars: ✭ 1,261 (+246.43%)
Mutual labels:  mongoose, mongodb, express, boilerplate
Fullstack Shopping Cart
MERN stack shopping cart, written in TypeScript
Stars: ✭ 82 (-77.47%)
Mutual labels:  mongoose, mongodb, express, docker-compose
Node Express Boilerplate
A boilerplate for building production-ready RESTful APIs using Node.js, Express, and Mongoose
Stars: ✭ 890 (+144.51%)
Mutual labels:  mongoose, mongodb, express, boilerplate
Nodepress
😎 RESTful API service for Blog/CMS, powered by @nestjs
Stars: ✭ 829 (+127.75%)
Mutual labels:  mongoose, mongodb, express, node-js
Express Mongodb Rest Api Boilerplate
A boilerplate for Node.js apps / Rest API / Authentication from scratch - express, mongodb (mongoose).
Stars: ✭ 153 (-57.97%)
Mutual labels:  mongodb, express, boilerplate, docker-compose
Bulletproof Nodejs
Implementation of a bulletproof node.js API 🛡️
Stars: ✭ 4,369 (+1100.27%)
Mutual labels:  mongoose, mongodb, express, boilerplate
React Redux Saucepan
A minimal and universal react redux starter project. With hot reloading, linting and server-side rendering
Stars: ✭ 86 (-76.37%)
Mutual labels:  eslint, prettier, express, boilerplate

forthebadge forthebadge forthebadge


Code Climate Coverage Status Build Status CircleCI Greenkeeper badge styled with prettier MIT License PRs Welcome Dependency Status dependencies Status devDependencies Status nps code style equimper All Contributors

NodeJS-API-Boilerplate

forthebadge forthebadge forthebadge forthebadge forthebadge forthebadge

Always in progress 👷‍

Get Started

Build

This Boilerplate use webpack 3 to compile code.

Installation

  1. Clone the project git clone https://github.com/EQuimper/nodejs-api-boilerplate.git.
  2. Install dependencies yarn install or npm i
  3. Create a .env file in the root like the .env.example file.
  4. For dev you need to have mongodb db locally. How to?

Install Mongodb

With Homebrew you can just run brew install mongodb and after brew services start mongodb.


Raven Log

For get raven log create account here: Sentry


Body Whitelist

For security have add a whitelist function for your req.body coming from the front end. You can take a look of it in the contants.js file.

const WHITELIST = {
  posts: {
    create: ['title', 'text'],
    update: ['title', 'text'],
  },
  users: {
    create: ['email', 'username', 'password'],
  },
};

Api Doc

Api doc his hosted on surge. Link. For change the url and have your own docs just add you link in the .env file.


Pre-Commit Hook

I've add pre-commit and lint-staged for lint your code before commit. That can maybe take time


Scripts

DEV

yarn dev

or

npm run dev

PS That can crash if this is the first time but don't worry give it 2 sec the scripts gonna work. He just need to created a dist folder :) This way you have only one command to run.

DEV-DEBUG

yarn dev:debug

or

npm run dev:debug

Why toJSON on methods model ?

toJSON() help us to get only the data we want when we push the info to the client. So now we just need to put the user object in the res.json(user) and we received only what we want. Why toAuthJSON() ? Cause if we populated the post we get the toJSON() so the toAuthJSON() is the on to call on signup and login for get the token and _id.

toAuthJSON() {
  return {
    _id: this._id,
    token: `JWT ${this.createToken()}`,
  };
},

toJSON() {
  return {
    _id: this._id,
    username: this.username,
  };
},

For Validation on Request

I'm using Joi in this boilerplate, that make the validation really easy.

export const validation = {
  create: {
    body: {
      email: Joi.string().email().required(),
      password: Joi.string().regex(/^[a-zA-Z0-9]{3,30}$/).required(),
      username: Joi.string().min(3).max(20).required(),
    },
  },
};

routes.post(
  '/signup',
  validate(UserController.validation.create),
  UserController.create,
);

Seeds

For seed just run one of this following comand. This is helpful in dev for making fake user.

This is only available in dev environment

You can change the number of seed by changing the number in each script inside /scripts/seeds

  • Seeds 10 user yarn db:seeds-user
  • Clear user collection yarn db:seeds-clear-user
  • Clear all collection yarn db:seeds-clear

Monitoring Server on http://localhost:3000/status


Docker

bash scripts/development.sh

Techs


Todo

  • [x] Test seeds controller - Done by cpenarrieta
  • [ ] Sendgrid or Other Mail supply
  • [ ] Add S3 for user image
  • [ ] Change Mocha for Jest

PR are welcome!!! 😃

Contributors

Thanks goes to these wonderful people (emoji key):


Emanuel Quimper

💬 📝 🐛 💻 📖 💡 🚇 🔌 👀 ⚠️ 🔧

Cristian Penarrieta

⚠️

This project follows the all-contributors specification. Contributions of any kind welcome!

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