Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/bytesleo/nodetomic-api

NEW VERSION HERE https://github.com/kevoj/nodetomic RESTful API Nodejs designed for horizontal scalability with support for cluster, based on Express, MongoDB, Redis, JWT, Socket.io, Passport.
https://github.com/bytesleo/nodetomic-api

babel es6 expressjs javascript mongodb node-api nodejs nodejs-api nodejs-api-auth nodejs-api-boilerplate nodejs-api-scalability nodejs-authentication nodejs-backend nodejs-boilerplate nodejs-cluster nodejs-framework nodejs-mongodb nodejs-redis nodejs-server nodejs-server-api

Last synced: about 17 hours ago
JSON representation

NEW VERSION HERE https://github.com/kevoj/nodetomic RESTful API Nodejs designed for horizontal scalability with support for cluster, based on Express, MongoDB, Redis, JWT, Socket.io, Passport.

Awesome Lists containing this project

README

        

## ===> NEWS! 🔥🔥 NEW FASTER AND MORE SCALABLE VERSION HERE!


# Nodetomic Api

[![Codacy Badge](https://api.codacy.com/project/badge/Grade/f5084c4bad544b2586e3e973c8e3a336)](https://www.codacy.com/app/kevoj/nodetomic-api?utm_source=github.com&utm_medium=referral&utm_content=kevoj/nodetomic-api&utm_campaign=Badge_Grade) [![NPM version](https://badge.fury.io/js/nodetomic-api.svg)](https://npmjs.org/package/nodetomic-api) [![Build Status](https://travis-ci.org/kevoj/nodetomic-api.svg?branch=master)](https://travis-ci.org/kevoj/nodetomic-api) [![dependencies Status](https://david-dm.org/kevoj/nodetomic-api/status.svg)](https://david-dm.org/kevoj/nodetomic-api) [![devDependencies Status](https://david-dm.org/kevoj/nodetomic-api/dev-status.svg)](https://david-dm.org/kevoj/nodetomic-api?type=dev) [![Gitter chat](https://img.shields.io/gitter/room/kevoj/scaling-fullstack.svg)](https://gitter.im/scaling-fullstack/Lobby) [![GitHub license](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](https://raw.githubusercontent.com/kevoj/nodetomic-api/master/LICENSE) [![Downloads](https://img.shields.io/npm/dt/nodetomic-api.svg?style=flat-square)](https://npmjs.org/package/nodetomic-api)

> RESTful API Nodejs designed for horizontal scalability with support for cluster, based on Express, MongoDB, Redis, JWT, Socket.io, Passport.

If you want, the **swagger** version is also available: nodetomic-api-swagger

### Technologies




















### Horizontal scalability

View horizontal scaling representation image with nodetomic-api HERE!

### Structure

 

/src/
|-- api
| |-- controllers
| |-- models
| |-- sockets
| `-- routers
|-- assets
|-- auth
| |-- controllers
| |-- passports
| |-- services
| `-- routers
|-- config
|-- lib
| |-- express
| |-- mongoose
| |-- redis-jwt
| `-- socket.io
|-- views
`-- app.js

## Preview

##### Development
![Imgur](https://i.imgur.com/brGk8Qt.png)

##### Production
![Imgur](https://i.imgur.com/2KLfEUq.png)

## Requirements

- [Nodejs](https://nodejs.org) >= **6.x.x** (Recommended **9.x.x**)
- [MongoDB](https://www.mongodb.com) >= **3.x.x**
- [Redis](https://redis.io) >= **3.x.x** (Recommended **4.x.x**)

## Installation

**Npm**

```bash
git clone https://github.com/kevoj/nodetomic-api
cd nodetomic-api
npm i
```

**Yarn**

```bash
yarn add nodetomic-api --ignore-engines
```

## Development

### Start

**Command:** `npm start`

**Description:** Start the project in development mode

![Imgur](https://i.imgur.com/dV6o7p9.png)

**Note:** if you want work with **nodemon** execute the command `npm run modemon`

### Build

**Command:** `npm run build`

**Description:** Compile the project by outputting the dist folder

![Imgur](http://i.imgur.com/NoXdDO4.png)

**Note:** Generate folder **`dist`**. So "dist/client" is optional. You can paste the compilation of a client here, for example of Vue, React, Angular...

![Imgur](https://i.imgur.com/bVFqr1f.png)

### Test

**Command:** `npm test`

**Description:** Run Lint and run Build in production mode and execute the authentication methods and basic requests.

![Imgur](http://i.imgur.com/ouKpQg1.png)

### Lint

**Command:** `npm run lint`

**Description:** Run ESLint to verify the entire project code


## Pm2 [Development]

### Dev-Simple

**Command:** `npm run dev-simple`

**Description:** Run Pm2 and compile the project in development mode in a single instance

![Imgur](http://i.imgur.com/cNuBVzK.png)

### Dev-Cluster

**Command:** `npm run dev-cluster`

**Description:** Run Pm2 and compile the project in development mode in multiple instances

![Imgur](http://i.imgur.com/wEU2Uz5.png)

## Pm2 [Production]

### Simple

**Command:** `npm run simple`

**Description:** Run Pm2 and compile the project in production mode in a single instance

![Imgur](http://i.imgur.com/tLA2hu7.png)

### Cluster

**Command:** `npm run cluster`

**Description:** Run Pm2 and compile the project in production mode in multiple instances

![Imgur](http://i.imgur.com/HTWJcUk.png)

## Stop

### Pm2

**Command:** `npm stop`

**Description:** Stops all processes associated with project pm2

### Node

**Command:** `killall node`

**Description:** Destroyed all process for node

## API Docs

You can find the documentation HERE!

## License

MIT © [Leonardo Rico](https://github.com/kevoj/nodetomic-api/blob/master/LICENSE)