Projeto desenvolvido para a ADA no curso de Frontend Angular, feito em Angular 19.
Este projeto e uma evolucao direta do primeiro projeto publicado em:
https://github.com/thiagocredico/ada-dashboard-bancario
No projeto atual, a base inicial foi refatorada e otimizada para uma arquitetura moderna com Angular 19, incluindo SPA com roteamento, autenticacao, internacionalizacao, integracao REST, reatividade com Signals e foco em performance.
O objetivo deste projeto final foi transformar a versao inicial do sistema bancario em uma aplicacao de nivel empresarial:
- Single Page Application (SPA) com roteamento completo
- Integracao real com API (
json-server) - Fluxo de autenticacao e protecao de rotas
- Interface reativa com
SignalseControl Flow - Estrategias de performance como Lazy Loading, SSR e Hydration
- Arquitetura com rotas avancadas, injeção de dependencias, guard e interceptor
- Reatividade moderna com
signal(),computed()etoSignal() - Integracao REST com CRUD e tratamento de erros
- Seguranca com fluxo de token e rotas protegidas
- Performance com SSR,
loadComponent,@defer,OnPushe preloading
- Login: autenticacao de usuario com sessao baseada em token
- Dashboard: saldo com ocultar/mostrar e fatura carregada sob demanda
- Transferencia: criacao de transacao e atualizacao de saldo
- Extrato (Transacoes): listagem, filtro, comprovante e exclusao
- Emprestimo: simulador com carregamento sob interacao
- Perfil: rotas aninhadas para Dados e Seguranca
- Internacionalizacao: seletor global com PT-BR e PT-PT
router-outletaplicado como base da navegacao- Rotas parametrizadas implementadas (
/transacoes/:id) - Rotas aninhadas implementadas em Perfil (
/perfil/dados,/perfil/seguranca) - Rotas coringa (
**) para 404 interno e externo
- Uso de
Signalsecomputedpara estado e derivacoes - Uso de novo Control Flow (
@if,@for) @deferaplicado em:- Simulador de emprestimo (
on interaction) - Fatura do cartao no dashboard (
on viewport)
- Simulador de emprestimo (
HttpClientconectado aojson-server- Leitura com
toSignalem pontos de interface catchErroraplicado no fluxo de requisicoes- Indicadores de loading e feedback de erro/sucesso para usuario
- Functional Guard (
CanActivate) protegendo rotas privadas - Functional Interceptor anexando
Authorization: Bearer <token>
ngx-translateconfigurado- Arquivos de traducao em
frontend/public/i18n - Sidebar e Header com chaves de traducao e pipe
| translate
- Lazy Loading com componentes standalone via
loadComponent - Preloading com
withPreloading(PreloadAllModules) - Componentes com
ChangeDetectionStrategy.OnPush - SSR e Hydration ativos com
provideClientHydration()
Este projeto atende aos requisitos solicitados para o projeto final, consolidando a evolucao da primeira versao em uma aplicacao Angular mais robusta, reativa, segura e preparada para escala.
- Node.js 18+
- npm 9+
- Instalar dependencias do frontend:
cd frontend
npm install- Subir backend (
json-server):
cd ../backend
npx json-server --watch db.json --port 3000- Em outro terminal, subir frontend:
cd ../frontend
ng serve- Acessos:
- Frontend: http://localhost:4200
- API: http://localhost:3000
frontend/src/app/app.routes.ts: roteamento da SPAfrontend/src/app/app.config.ts: providers globais (router, interceptor, preloading, hydration)frontend/src/app/core/guards/auth.guard.ts: protecao de rotas privadasfrontend/src/app/core/interceptors/auth.interceptor.ts: token em requests HTTPfrontend/src/app/core/services/account-state.service.ts: estado global reativo da conta/transacoesfrontend/public/i18n/*.json: traducoes
cd frontend
ng test