Skip to content
This repository has been archived by the owner on Apr 22, 2021. It is now read-only.
/ mean-ionic-ngrx Public archive

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

Notifications You must be signed in to change notification settings

FazioNico/mean-ionic-ngrx

Repository files navigation

MEAN Ionic NgRx Lazy Load + REST Server API as Microservices Architecture

Build Status dependencies Status devDependencies Status Known Vulnerabilities Version

My own Full MEAN stack Starter kit based on Microservice architecture with Ionic 4 and ReactiveX API (ngrx/Store + ngrx/Effects) and many more tools...

Overview

refact in proccess...

MEAN Ionic NgRx is a TypeScript Full Stack Starter with MongoDB + ExpressJS + Angular + NodeJS + Ionicframework all builded as microservices architecture managed inclued by LernaJS and many others funny tools.

  • Front-End: Angular + Ionic 4 to provide multi platform application.
  • Back-End: Express REST API managed by API Gateway to request correct microservices.

It's a simple todo application exemple with REST server-side for Users authentification with JWT. Front side is building with Angular and Ionicframework 4 and using ReactiveX API (ngrx/Store + ngrx/Effects) to provide a better and simply datas management + ngx-translate to internationalize languages + Angular HttpClientModule to work with REST server-side.

Hop is help you to start your project on the right way.

Prerequisites

  • NVM - Download & Install Node Version Manage
  • NodeJS 10 - Download & Install Node.js and the npm package manager with NVM $ nvm install node 10.
  • MongoDB - Download & Install MongoDB, and make sure it's running on the default port (27017).
  • Typescript Latest stable version install in Global $ npm install -g typescript
  • Ionic 4 Latest version install in Global $ npm install -g ionic
  • TypeDoc - Latest stable version install in Global $ npm install -g typedoc
  • LernaJS - Latest stable version install in Global $ npm install -g lerna
  • Karma - Latest stable version install in Global $ npm install -g karma-cli
  • Protractor - Latest stable version install in Global $ npm install -g protractor && webdriver-manager update
  • And you should also have git installed to a better working flow.

Get Started

Installation

  • $ nvm use 10
  • $ npm install

Start

  • $ npm run dev to start Front-End+Back-End in development mode
  • open browser at http://localhost:4200

Tips:

  • use killall mongod or killall node to kill all process

Build

comming soon...

Deploy

comming soon...

Documentations

  • $ npm run docs
  • open ./docs/index.html to read documentation

Server REST API Endpoints

  • server dev runing on http://localhost:3000
  • server prod runing on http://YOUR_HOST (or https)
TODOS Endpoints

  path: http://localhost:3000/todos
  autenticate: false
  methode: $_GET / $_POST

  path: http://localhost:3000/todos/:id
  autenticate: false
  methode: $_GET / $_POST / $_DELETE


AUTH Endpoints

  path: http://localhost:3000/auth
  autenticate: false
  methode: $_POST

  path: http://localhost:3000/auth/isauth
  autenticate: false/true
  methode: $_GET

  path: http://localhost:3000/auth/signin
  autenticate: false
  methode: $_POST


USERS Endpoints

  path: http://localhost:3000/users
  autenticate: true
  methode: $_GET


  path: http://localhost:3000/users/:id
  autenticate: true
  methode: $_GET

Documentation

App Documentations is generate by typeDoc. Use the following cmd to generate documentation

  • $ npm run docs will generate Angular Application documentation and open the index doc in browser.

Todo before get Started

Important: You have to update/change/replace mongod npm script into main ./package.json Update mongod $path with your own path (or run $npm run mongod to check if mongo starting correctly) and replace Git repository link into tools/tasks/release.project.sh line 50 by your'own.

Git Workflow

  • To have better development workflow, using Git Flow model working.
  • To dynamicly add commit to CHANGELOG.md, add <core|update|features|fix>: at the begin of the commit. Script search : to generate CHANGELOG.md
  • To disable auto generate CHANGELOG.md, go to tools/tasks/release.project.sh and comment all changelog() content function or comment changelog call function in line 88 as # changelog.

Contribution

Feel free to contrib to my stack.

  • clone/fork project
  • $ git checkout -b YOUR_BRANCH
  • do your work...
  • pass test...
  • pull request with your branch on the dev branch / or submit small fix on the master branch.
  • i will merge it and upd project version soon as possible.

About author

Hi, i'm a Front-end developper living in Geneva Switzerland and i build hybrid mobile & web applications for almost 15 years. You can follow me on Twitter @FazioNico or checkout my own website https://nicolasfazio.ch

About

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

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published