blob: 25a92b29f8a574446f5cd9075bba72ebf101baa0 [file] [log] [blame]
/********************************************************************************
* Copyright © 2018 Mettenmeier GmbH.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* SPDX-License-Identifier: EPL-2.0
********************************************************************************/
===============================
Architecture Descision Frontend
===============================
1. Used 3rd Party Packages
--------------------------
"ag-grid": "^18.0.1" - PO requested us to use this. It provides functionality like sorting, filtering and grouping out of the box
"bootstrap": "^4.1.1" - Bootstrap is the wellknown css framework for styling the frontend. The whole UI is based on this.
"font-awesome": "^4.7.0" - Font-awesome provides a huge set of free icons.
"@auth0/angular-jwt": "^2.0.0" - Angular-jwt is a library for handling jwt´s in the frontend.
"@ng-bootstrap/ng-bootstrap": "^2.2.0" - Ng-Bootstrap provides angular bootstrap components in order to omit jquery and popper.js as these could cause problems in interaction with angular
2. Application Architecture
---------------------------
This application is desgined tightly to the recommendations of the Angular styleguide by Google itself. According to this there are at least 4 Modules in our Project.
The first one is the very basic app.module which orchestrates the whole application. The second one is the core module which holds a bunch of singleton
services/components/directives. The third one is the shared module which provides reusable/application wide components/directives and models. The fourth one is the
first feature module which implements the masterdata management view of the first stories. In future there will be more feature modules and the shared/core module
will be updated accordingly.
This architecture provides a scalable and maintainable code base in order to implement more functionallity.