🧩 Exercícios: Projeto Corporativo: Portal de Gestão Financeira com Auditoria JSON
🧩 Exercícios Práticos: Projeto Corporativo: Portal de Gestão Financeira com Auditoria JSON
Spec Frontend Com Angular • Trilha Progressiva em 4 Níveis
🎯 Nível 1: Fundamentos
Problema 20.1 — Estrutura do Módulo de Gestão Financeira com Standalone Components
Contexto: Estrutura do Módulo de Gestão Financeira com Standalone Components no contexto de Projeto Corporativo: Portal de Gestão Financeira com Auditoria JSON.
Requisitos de Execução:
- Organizar arquitetura do portal com Layout, Extrato, Balanço e Gráficos.
Resultado Esperado
Portal financeiro estruturado com componentes standalone desacoplados.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_20_1_SeuNome - Envie na tarefa:
Atividade Cap 20 - Projeto Corporativo: Portal de Gestão Financeira com Auditoria JSON
🔑 Gabarito de Código & Solução Comentada
// portal-layout.component.ts
import { Component } from '@angular/core';
import { RouterOutlet, RouterLink } from '@angular/router';
@Component({
selector: 'app-finance-layout',
standalone: true,
imports: [RouterOutlet, RouterLink],
template: `
<div class="portal-container">
<nav><a routerLink="/extrato">Extrato</a> | <a routerLink="/balanco">Balanço</a></nav>
<main><router-outlet></router-outlet></main>
</div>
`
})
export class FinanceLayoutComponent {}
🔍 Nível 2: Prática
Problema 20.2 — Tabela de Lançamentos com Signals e Filtros Reativos
Contexto: Tabela de Lançamentos com Signals e Filtros Reativos no contexto de Projeto Corporativo: Portal de Gestão Financeira com Auditoria JSON.
Requisitos de Execução:
- Criar componente de lançamentos financeiros com cálculo de saldo em tempo real usando
computed().
Resultado Esperado
Saldo consolidado atualizado reativamente na inserção de novos lançamentos.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_20_2_SeuNome - Envie na tarefa:
Atividade Cap 20 - Projeto Corporativo: Portal de Gestão Financeira com Auditoria JSON
🔑 Gabarito de Código & Solução Comentada
// lancamentos.component.ts
import { Component, signal, computed } from '@angular/core';
import { CommonModule } from '@angular/common';
@Component({
selector: 'app-lancamentos',
standalone: true,
imports: [CommonModule],
template: `
<h3>Saldo Consolidado: {{ saldo() | currency:'BRL' }}</h3>
`
})
export class LancamentosComponent {
lancamentos = signal([
{ id: 1, desc: 'Venda A', valor: 1500.0 },
{ id: 2, desc: 'Despesa B', valor: -300.0 }
]);
saldo = computed(() => this.lancamentos().reduce((acc, l) => acc + l.valor, 0));
}
⚡ Nível 3: Integração
Problema 20.3 — Trilha de Auditoria Corporativa em JSON com Assinatura Hash
Contexto: Trilha de Auditoria Corporativa em JSON com Assinatura Hash no contexto de Projeto Corporativo: Portal de Gestão Financeira com Auditoria JSON.
Requisitos de Execução:
- Gravar log de auditoria estruturado no frontend com timestamp, operador, rota e payload.
Resultado Esperado
Evento de auditoria financeira gravado em JSON padronizado.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_20_3_SeuNome - Envie na tarefa:
Atividade Cap 20 - Projeto Corporativo: Portal de Gestão Financeira com Auditoria JSON
🔑 Gabarito de Código & Solução Comentada
// audit-finance.service.ts
import { Injectable } from '@angular/core';
@Injectable({ providedIn: 'root' })
export class AuditFinanceService {
registrarOperacao(acao: string, payload: any) {
const log = {
timestamp: new Date().toISOString(),
acao,
payload,
operador: 'OPERADOR_FINANCEIRO_01'
};
console.log('AUDITORIA ANGULAR:', JSON.stringify(log));
}
}
🏆 Nível 4: Desafio Corporativo
Problema 20.4 — Suíte de Testes End-to-End do Portal Financeiro
Contexto: Suíte de Testes End-to-End do Portal Financeiro no contexto de Projeto Corporativo: Portal de Gestão Financeira com Auditoria JSON.
Requisitos de Execução:
- Testar ciclo financeiro completo: Listagem -> Novo Lançamento -> Atualização de Saldo -> Trilha de Auditoria.
Resultado Esperado
Suíte de Testes do Portal de Gestão Financeira concluída com 100% de sucesso! 🏆
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_20_4_SeuNome - Envie na tarefa:
Atividade Cap 20 - Projeto Corporativo: Portal de Gestão Financeira com Auditoria JSON
🔑 Gabarito de Código & Solução Comentada
// finance-e2e.spec.ts
import { LancamentosComponent } from './lancamentos.component';
describe('Portal Financeiro E2E', () => {
it('calcula saldo consolidado com precisao', () => {
const comp = new LancamentosComponent();
expect(comp.saldo()).toBe(1200.0);
});
});