├── .editorconfig ├── .gitignore ├── README.md ├── angular.json ├── karma.conf.js ├── package-lock.json ├── package.json ├── src ├── app │ ├── app.component.html │ ├── app.component.scss │ ├── app.component.ts │ ├── app.config.ts │ ├── app.routes.ts │ ├── pages │ │ ├── auth │ │ │ ├── auth.component-2.html │ │ │ ├── auth.component-2.scss │ │ │ ├── auth.component.html │ │ │ ├── auth.component.scss │ │ │ ├── auth.component.ts │ │ │ ├── auth.routes.ts │ │ │ ├── forgot-password │ │ │ │ ├── forgot-password.component.html │ │ │ │ ├── forgot-password.component.scss │ │ │ │ └── forgot-password.component.ts │ │ │ ├── login │ │ │ │ ├── login.component.html │ │ │ │ ├── login.component.scss │ │ │ │ └── login.component.ts │ │ │ └── validate-account │ │ │ │ ├── validate-account.component.html │ │ │ │ ├── validate-account.component.scss │ │ │ │ └── validate-account.component.ts │ │ ├── home │ │ │ ├── home.component.html │ │ │ ├── home.component.scss │ │ │ └── home.component.ts │ │ └── not-found │ │ │ ├── not-found.component.html │ │ │ ├── not-found.component.scss │ │ │ └── not-found.component.ts │ └── shared │ │ ├── components │ │ ├── blocks │ │ │ ├── progress-bar │ │ │ │ ├── progress-bar.component.html │ │ │ │ ├── progress-bar.component.scss │ │ │ │ └── progress-bar.component.ts │ │ │ └── toast │ │ │ │ ├── toast.component.html │ │ │ │ ├── toast.component.scss │ │ │ │ ├── toast.component.ts │ │ │ │ └── toast.manager.ts │ │ ├── forms │ │ │ └── form-confirm │ │ │ │ ├── form-confirm.component.html │ │ │ │ ├── form-confirm.component.scss │ │ │ │ └── form-confirm.component.ts │ │ ├── layouts │ │ │ ├── layout-header │ │ │ │ ├── layout-header.component.html │ │ │ │ ├── layout-header.component.scss │ │ │ │ └── layout-header.component.ts │ │ │ └── page-layout │ │ │ │ ├── page-layout.component.html │ │ │ │ ├── page-layout.component.scss │ │ │ │ └── page-layout.component.ts │ │ └── modals │ │ │ └── modal-wrapper │ │ │ ├── modal-wrapper.component.html │ │ │ ├── modal-wrapper.component.scss │ │ │ └── modal-wrapper.component.ts │ │ ├── directives │ │ └── modal-wrapper.directive.ts │ │ ├── enums │ │ ├── endpoint.enum.ts │ │ ├── environment.enum.ts │ │ └── storage-key.enum.ts │ │ ├── helpers │ │ ├── storage.helper.ts │ │ └── string.helper.ts │ │ └── services │ │ ├── app.service.ts │ │ └── store.service.ts ├── assets │ ├── .gitkeep │ ├── i18n │ │ └── en.json │ ├── img │ │ ├── favicon │ │ │ ├── android-chrome-192x192.png │ │ │ ├── android-chrome-512x512.png │ │ │ ├── apple-touch-icon.png │ │ │ ├── browserconfig.xml │ │ │ ├── favicon-16x16.png │ │ │ ├── favicon-32x32.png │ │ │ ├── favicon.ico │ │ │ ├── manifest.json │ │ │ ├── mstile-144x144.png │ │ │ ├── mstile-150x150.png │ │ │ ├── mstile-310x150.png │ │ │ ├── mstile-310x310.png │ │ │ ├── mstile-70x70.png │ │ │ └── safari-pinned-tab.svg │ │ └── project │ │ │ ├── folder-structure.png │ │ │ ├── login.png │ │ │ └── logo.svg │ └── scss │ │ ├── project.scss │ │ ├── styles.scss │ │ └── variables.scss ├── environments │ ├── environment.prod.ts │ └── environment.ts ├── index.html ├── main.ts ├── polyfills.ts └── test.ts ├── tsconfig.app.json ├── tsconfig.json └── tsconfig.spec.json /.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.ts] 12 | quote_type = single 13 | 14 | [*.md] 15 | max_line_length = off 16 | trim_trailing_whitespace = false 17 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See http://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # Compiled output 4 | /dist 5 | /tmp 6 | /out-tsc 7 | /bazel-out 8 | 9 | # Node 10 | /node_modules 11 | npm-debug.log 12 | yarn-error.log 13 | 14 | # IDEs and editors 15 | .idea/ 16 | .project 17 | .classpath 18 | .c9/ 19 | *.launch 20 | .settings/ 21 | *.sublime-workspace 22 | 23 | # Visual Studio Code 24 | .vscode/* 25 | !.vscode/settings.json 26 | !.vscode/tasks.json 27 | !.vscode/launch.json 28 | !.vscode/extensions.json 29 | .history/* 30 | 31 | # Miscellaneous 32 | /.angular/cache 33 | .sass-cache/ 34 | /connect.lock 35 | /coverage 36 | /libpeerconnection.log 37 | testem.log 38 | /typings 39 | 40 | # System files 41 | .DS_Store 42 | Thumbs.db 43 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ▶️ EasyAngular 2 | 3 | Welcome to the EasyAngular boilerplate! This project is designed to help you quickly start a new **Angular 18** project with **Bootstrap 5** and various useful libraries. It comes with pre-coded elements to streamline your development process. 4 | 5 | ## Getting started 6 | ### Prerequisites 7 | 8 | Make sure you have the following installed : 9 | - [Node.js](https://nodejs.org/) (version 20) 10 | - [Angular CLI](https://angular.dev/) (version 18) using `npm install -g @angular/cli` 11 | 12 | ### Installation 13 | Clone the repository : 14 | ```sh 15 | git clone https://github.com/NicolasRoehm/angular-boilerplate.git 16 | cd angular-boilerplate 17 | npm install 18 | ``` 19 | 20 | ### ✒️ Usage 21 | - Rename `EasyAngular` and `easy-angular` with your project name 22 | - Place favicon generated with [RealFavIconGenerator](https://realfavicongenerator.net/) into `src/assets/img/favicon` folder 23 | 24 | ### Development server 25 | 26 | Run the following command for a development server. Navigate to http://localhost:4200/. The app will automatically reload if you change any of the source files. 27 | ```sh 28 | ng-serve 29 | ``` 30 | 31 | ## Boilerplate content 32 | ### 🗂️ Source code structure 33 | 34 |
37 |
38 | |
39 |
40 |
|
62 |