Skip to content

danny00747/mean-stack-web-app

Repository files navigation

Website

The website is available here.

Backend

Uncle Bob's clean architecture implementation in nodejs/express/mongoose

Frontend

Angular 8 application built in the lazy loading architecture

Features

  • lazy-loading of admin and feature modules
  • lazy reducers
  • localStorage ui state persistence
  • @ngrx/effects for API requests
  • fully responsive design
  • angular-material and custom components in SharedModule

Stack

  • Angular
  • NgRx
  • RxJS
  • Angular Material
  • Bootstrap 4

Usage

Prerequisites

Running Locally

The backend

1. Clone the repo and install dependencies

git clone 
cd mean-stack-web-app
npm i

2. Modify the .env file

Save .env.sample as .env and then add your database and other variables

3. Startup your MongoDB

Usually this is just: mongod on the command line. Or use MongoDB Compass

4. Start the server

To run in development mode where code is run by babel-node via nodemon and re-transpiled any time there is a change:

npm run dev

To run in production mode where code is transpiled by Babel into a dist folder and run directly in node:

npm run prod

Useful Commands

  • npm run test:e2e - runs e2e test and opens chrome to run tests
  • npm run cover:unit:nyc - runs unit tests and uses Istanbul as a code coverage reporter
  • npm run cover:unit:mocha - runs unit tests and uses mochawesome as a custom reporter
  • npm run test:integration - runs integration tests for the backend
  • npm run test:integration:watch - runs integration tests in watch mode

The frontend

1. install dependencies

git clone 
cd client-side
npm i

2. Start the application

npm run start

2. Build the application for production use

npm run build

Built With

IntelliJ IDEA Ultimate

API

Documentation available here

Integration Test Code Coverage

Netlify Status

The code coverage available here

Integration Test Report

Netlify Status

Integration tests report available here

Unit Test Code Coverage

Netlify Status

The code coverage available here

Unit Test Report

Netlify Status

Unit tests report available here

End to End Test Report

Netlify Status

E2E tests report available here

End to End Tests Live Demo

E2E tests live demo here

Lighthouse Report

Netlify Status

Lighthouse Report available here