| /******************************************************************************** |
| * 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. |