# EMS Angular Toolbox

This project is a study toolkit and design system, so it may contain some errors. Will be a pleasure receive your code review, suggestions and/or tips. :raised_hands:

This application is based in Angular with Angular Material, Bootstrap, Typescript and RxJS. For unit test, the application use Karma and Jasmine. For E2E tests, application use Cypress. This readme presents to you the installation details, application startup guide, how to contribute, dependencies and more. This application use some patterns like [Javascript Design Patterns](https://www.patterns.dev/posts/classic-design-patterns/), [Semantic Commit Messages](https://gist.github.com/joshbuchea/6f47e86d2510bce28f8e7f42ae84c716) and [Git flow](https://nvie.com/posts/a-successful-git-branching-model/).

If you want a live version [click here](https://angular-calculator-hazel.vercel.app/). But if you want to run the application in your pc, follow the Installation and Start Application section and we recommend to you download the following versions/dependencies installed on your computer to start the application:

- NodeJS => v.16.14.0
- NPM => v8.3.1
- Angular CLI => v13.3.11

Obs.: Angular CLI could be installed as global resource. But if you want to use angular from project, do not install angular CLI globally (npm i -g @angular/cli).

## Installation

This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version v13.3.0

**1 -** Clone the project and install the dependencies:

```bash
$ git clone https://github.com/Eduk29/ems-angular-toolkit.git
$ cd ems-angular-toolkit
$ npm install
```

## Start Application

After you clone the repository, to start the application open the root directory (the directory of package.json) in a command terminal and run the following instruction:

```bash
ng serve
```

When the build is over, open your favorite browser in [http://localhost:3000](http://localhost:3000) to view it.

## Running unit tests

To run the unit tests of application run the following instruction:

```bash
npm run test:headless
```

But if you want only the code coverage run the following instruction:

```bash
npm run test:coverage
```

## Running linters

To run the linters in application run the following instruction:

```bash
npm run lint && npm run prettier && npm run stylelint
```

## Dependecies

- Angular Framework
- Angular Material
- Bootstrap
- ESLint
- Jasmine
- Husky
- Karma
- Prettier
- RxJS
- Typescript

## Deploy Plataform and CI/CD

- [Vercel](https://vercel.com/)
- [Github Actions](https://github.com/features/actions)

## Application Roadmap

- TBD

## Developer :computer:

José Eduardo Trindade E Marques  
[LinkedIn](https://www.linkedin.com/in/eduardomarques29/)  
edu.temarques@gmail.com
