- Architecture
- Front-end: Concepts
- Application Structure
- Directives
- Feature, Business Process, Components
- Repository
- DAL (HTTP Bridge)
- Context Management
- Authentication
- Logging and Audit
- Coding Standard and Naming
- Backend: Concepts
- Application Structure
- Endpoint
- Domain Servces and Model
- DAL and Repository
- Security
- Audit and Monitoring
- Security
- Testing
- Approach
- Setup
- CucumberJS and Protractor
- Front Unit Test - Jasmine and Karma
- Backend Integration Tests via Play Mock Endpoints
- Backend Unit Tests
*Please note that although the code and design is stable, documentation is still work in progress.
PAMM is an opinionated architecture optimized for data driven applications. Together with its sister project, JAMM (integration TBA), offers a full enterprise stack. It is important to understand that PAMM is not a framework and there is no API to force developers to code in a particular manner. What PAMM offers is a ready made architecture that gives a head start for the development of typical digital/WEB applications.
The PAMM technology stack comprises of the following technology:
-
Core: AngularJS, Angular UI Router, PLAY2!, JAVA, JPA
-
Layout: LESS, BootStrap 3, BootStrap Dialog, Font Awesome
-
Test Stack: Cucumber JS, Protractor, Jasmine, Karam, JUnit
![](./docs/img/pamm-overview.png)
### Client Tier ### Within a multi-tier context, PAMM is the client tier that consists of an AngularJS application running within a browsers and the Play application server hosting it. Angular applications are pure front-end solutions and no pages are generated on the server. Therefore, the Play server is used only to provide application and routing logic exposed via REST. The play server acts as pass through and no data or business logic is served from the Play server. As such the Play server acts as a natural network break between the browser and back-end systems. In security term, this would place PAMM in the internet access zone.
It is also possible to utilize PAMM for single tier applications. In such cases the Play server would host business logic and access the database directly. PAMM does not have an opinion where the database should sit but it is expected that it will reside within a separate tier for security reason. In addition, it is also assumed that for normal deployments the Play Server will also sit behind firewalls. It is up to individual projects to fulfil any CLAS requirements in addition to normal penetration security.
The integration tier is responsible for connecting the client tier to the applications tier and is normally enable via an ESB that manages the standard routing and mediation between the endpoints.
The application tier consists of distinct business systems of the target environment, such as banking and document management. These systems control and process business functions