Skip to content

jrcasso/mean-demo

Repository files navigation

A MEAN CI/CD-driven Application

Summary

This project endeavors to implement the following:

  • a Docker-native local application development environment
  • a Kubernetes-native cloud application staging and production environment
  • a robust, multi-facetted testing harness leveraging MEAN-friendly frameworks
  • a modern, fully-fledged CI/CD pipeline, from local development to production deployment
  • a mature, declarative infrastructural configuration through infrastructure-as-code (IaC)
  • a MEAN-stack app demonstrating the value of syntactic parity between a stack embodying ECMA principles

Project Status:

  Build Status      GitHub release (latest SemVer including pre-releases)


Application Stack: MongoDB, Express, Angular, and Nodejs (MEAN)


  MongoDB Version    ExpressJS Version    Angular Version    NodeJS Version


DevOps Technologies:

DevOps Aspect Component Technology Description
Local development Local development Docker Container orchestration to mimick the staging environment configuration
Continuous Integration Pipeline Drone Provides a self-service delivery platform to implement various parellelizable continuous integration and continuous deployment pipelines
Testing: unit Karma Provides a generic HTTP server for various browsers providing a testing platform for other frameworks
Testing: unit Jasmine Provides a dependency-free behavior-driven development framework for testing JavaScript code
Testing: e2e Protractor Provides Angular-assisted tests against the application running in a real browser, interacting with it as a user would.
Linting: TypeScript tslint Provides basic quality control and a standardization of style
IaC Terraform (WIP) Provides a mature, cloud-provider friendly interface to describe complex infrastructures in code
Continuous Deployment Pipeline Drone Provides a self-service delivery platform to implement various parellelizable continuous integration and continuous deployment pipelines
Image Repo DockerHub Provides an image repository for building containers
Deploy Agent Helm (WIP) Provides an release-managed deployment process for k8s-native applications
Deploy Target Kubernetes (WIP) Provides deployment automation, scaling, and management of containerized applications
Testing: regress Protractor (WIP) Provides Angular-assisted tests against the application running in a real browser, interacting with it as a user would.
Continuous Monitoring TBD TBD (WIP)

Development Setup

Ensure you have the following prerequisites satisfied:

  • Install Docker for Desktop
  • Install npm
git clone git@github.com:jrcasso/mean-demo
cd mean-demo/
./setup.sh
 docker-compose run --service-ports <service> bash # or docker-compose up, shelling into container as needed

For angular, you would then execute:

./node_modules/.bin/ng serve --host 0.0.0.0

For express, you would then execute:

./node_modules/.bin/nodemon app.js

About

(WIP) A MEAN-stack application

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •