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...
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.
- 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
- Good knowledge of ReactiveX API & NgRx
- Redux DevTools Extension - Install Plugin for Chrome - Debugging application's state changes & provides power-ups for your Redux development workflow.
- And you should also have git installed to a better working flow.
- You have to check the Todo before Get Started
- then follow Installation instruction
$ nvm use 10
$ npm install
$ npm run dev
to start Front-End+Back-End in development mode
- open browser at
http://localhost:4200
Tips:
- use
killall mongod
orkillall node
to kill all process
comming soon...
comming soon...
$ npm run docs
- open
./docs/index.html
to read documentation
- 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
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.
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 allchangelog()
content function or comment changelog call function in line 88 as# changelog
.
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 themaster
branch. - i will merge it and upd project version soon as possible.
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