Este é um projeto fullstack criado como parte de um desafio de desenvolvimento. A aplicação é composta por um frontend desenvolvido em Angular que se comunica com três microserviços de backend, cada um responsável por diferentes aspectos do gerenciamento de tarefas, permitindo operações CRUD (Criar, Ler, Atualizar, Excluir).
- Frontend: Angular 18.2.6
A aplicação permite:
- Incluir: Adicionar novas tarefas ao sistema.
- Alterar: Atualizar as informações de uma tarefas existente.
- Excluir: Remover tarefas cadastradas.
- Ler: Exibir as tarefas cadastradas.
Siga as etapas abaixo para configurar e rodar a aplicação localmente:
-
Clone o repositório:
git clone <git@github.com:GeovanaAugusta/fullstack-challenge-todo-angular.git> cd fullstack-challenge-todo-angular
-
Instale as dependências:
npm install
-
Execute o servidor de desenvolvimento Angular:
npm start
O frontend estará acessível em
http://localhost:4200
. -
Certifique-se de que os microserviços de backend estão rodando nas seguintes portas:
- Serviço de Tarefas:
http://localhost:8000
- Serviço de Usuários:
http://localhost:8001
- Serviço de Notificações:
http://localhost:8002
O frontend se comunicará com o backend através de um proxy configurado em proxy.conf.json
.
A aplicação utiliza testes unitários para garantir a qualidade e a funcionalidade do código. Os testes são realizados com as seguintes ferramentas:
- Jasmine: Um framework de testes para JavaScript que fornece uma sintaxe clara e intuitiva para escrever testes.
- Karma: Um executor de testes que permite rodar os testes em diferentes navegadores.
Para rodar os testes, execute o seguinte comando:
npm test
A comunicação entre o frontend e o backend é realizada via proxy. O arquivo proxy.conf.json
está configurado como abaixo:
[
{
"context": [
"/api/tasks"
],
"target": "http://18.230.82.81:8081/api",
"secure": false,
"changeOrigin": true,
"pathRewrite": {
"^/api/tasks": "/tasks"
}
},
{
"context": [
"/api/users"
],
"target": "http://18.229.131.117:8080/api",
"secure": false,
"logLevel": "debug",
"changeOrigin": true,
"pathRewrite": {
"^/api/users": "/users"
}
}
]