##Overview
The basic driver of this application is to demonstrate several a handful of key features and also several secondary features, inheirient in a good application coding design. Keep in mind this is only a focused set of code focusing on the technology and not necessarily the feature set. In-fact all presented features are only designed to provide a look into the cohesion of each chosen approach.
http://ian-hamilton.github.io/apollo-angular-demo/project-reports.html
The following list are the major drivers of what this demo offers:
- Google's Angular JS
- Core Angular JS
- Templating
- Angular Application Module
- Angular JS Controllers and Service Modules
- Angular REST Implementation
- NG Grid
- UI Route
- Single Page Routing
- Parameter Provider
- NPM (Node Package Manager)
- Node.js
- Grunt
- package.json (bower)
- GruntFile.js (build tool)
- Twitter Bootstrap 3
- Mobile/Web Responsiveness Fundamentals
- Basic Grid Layout
- Adaptive Styling
- Mixins
- Spring Data (JPA)
- Mongo DB
- Repositories
- Entities
- Configuration
- AWS (Amazon Web Services)
- Rest Service Using Spring MVC
- RESTful Standards
- GET, POST, PUT, DELETE, HEAD
- Jackson Mapping
- Application Configuration
- Logging
- Logging through Runtime Weave Aspects (aspectj)
- Joinpoints and Pointcuts
- Joinpoints with Annotations (FineGrainLogging annotation)
- Modern Dependency Injection
- Annotation Based Injection
- Component Scanning for Steriotypes
- Unit Testing Practices
- jacoco Code Coverage Reporting
- Seperation of Unit and Integration Tests (Failsafe and Surefire)
- Mockito Mocking Framework
- Dirty Context
- mockMvc (Spring MVC Realtime HTTP Request/Reply)
- CheckStyle
- PIT Testing (Mutation Testing)
###Build As the below overview section describes the "Build" steps to producing this code. Some are marked as optional and only needed if code change is required.
####NPM Javascript/CSS/Glyphcon building
- Install NodeJS (https://nodejs.org/download/)
- After NodeJS installation execute the following command
npm install -g grunt-cli - Execute the /apollo-item-mvc/src/main/web-resources/npm-install-script.sh
- Execute the following command at /apollo-item-mvc/src/main/web-resources/npm/
grunt- The above command will compile all the JS/CSS mixins and run an lint unit tests
###Maven Build - War File
- Minimum maven build
mvn clean install
- Maven build including Integration-Tests
mvn clean install -DskipITTests=false
- Full Maven Build (Junit, Integration, PIT Mutation, Checkstyle, Jacoco Coverage)
mvn clean install -DskipITTests=false checkstyle:checkstyle org.pitest:pitest-maven:mutationCoverage
- Maven Documentation
mvn site org.pitest:pitest-maven:mutationCoverage
- If using Apache Tomcat, the below configuration will need to be set in the section of the server.xml
<Context docBase="apollo-item-mvc-1.0-SNAPSHOT" path="/apollo-item-mvc" debug="0" reloadable="true"/>