Portfolio pessoal desenvolvido com Angular 21+, utilizando as mais recentes funcionalidades do framework incluindo standalone components, zoneless change detection e signals.
Aplicação single-page moderna que apresenta:
- 🎓 Formação acadêmica e cursos
- 📚 Livros e publicações
- 💼 Experiência profissional
- 📊 Dashboard com estatísticas
- 🌐 Suporte a múltiplos idiomas
- 📱 Design responsivo
- Angular 21+ - Framework principal com standalone components
- TypeScript 5.9 - Linguagem de programação
- RxJS 7.8 - Programação reativa
- Bootstrap 5.3 - Framework CSS
- Bootstrap Icons - Biblioteca de ícones
- SCSS - Pré-processador CSS
- Vitest 4.0 - Framework de testes unitários
- Playwright 1.56 - Testes E2E multi-browser
- @vitest/coverage-v8 - Cobertura de código
- ESLint 9 - Linting de código
- Prettier 3.6 - Formatação de código
- Angular ESLint - Regras específicas do Angular
- Google Analytics - Rastreamento de uso via ngx-google-analytics
- Angular CLI 21 - Ferramentas de desenvolvimento
- Vite 7.2 - Build tool para testes
- esbuild - Bundler rápido (via Angular CLI)
- Node.js >= 22.12
- npm (incluído com Node.js)
# Clone o repositório
git clone https://github.com/robsonalvesdevbr/robsonalvesdevbr-angular.git
# Entre no diretório
cd robsonalvesdevbr-angular
# Instale as dependências
npm install# Iniciar servidor de desenvolvimento (porta 4200)
npm start
# Iniciar e abrir automaticamente no browser
npm run dev
# Iniciar em modo de produção localmente
npm run start:prod# Build de desenvolvimento
npm run build
# Build de produção otimizado
npm run build:prod
# Analisar tamanho do bundle
npm run build:analyze
# Build com watch mode
npm run watch# Executar testes em modo watch
npm test
# Executar testes uma vez
npm run test:nowatch
# Gerar relatório de cobertura
npm run test:coverage
# Interface visual do Vitest
npm run test:ui# Executar todos os testes E2E
npm run test:e2e
# Modo interativo com UI
npm run test:e2e:ui
# Modo debug
npm run test:e2e:debug
# Executar em browser específico
npm run test:e2e:chromium
npm run test:e2e:firefox
# Ver último relatório
npm run test:e2e:report# Executar linter
npm run lint
# Corrigir problemas automaticamente
npm run lint:fix
# Formatar código
npm run format
# Verificar formatação
npm run format:check
# Auditoria de segurança
npm run security:check# Limpar arquivos gerados
npm run cleansrc/
├── app/
│ ├── components/
│ │ ├── base-page/ # Componente base para páginas
│ │ ├── pages/ # Páginas da aplicação
│ │ └── utils/ # Componentes reutilizáveis
│ ├── data/ # Dados hardcoded
│ ├── interfaces/ # Interfaces TypeScript
│ ├── models/ # Enums e modelos
│ ├── pipes/ # Pipes customizados
│ ├── services/ # Serviços da aplicação
│ ├── routes/ # Configuração de rotas
│ ├── utils/ # Utilitários
│ ├── app.config.ts # Configuração da aplicação
│ └── app.routes.ts # Rotas principais
├── assets/ # Recursos estáticos
├── environments/ # Configurações de ambiente
└── styles.scss # Estilos globais
- Standalone Components - Sem NgModules
- Zoneless Change Detection - Performance otimizada com signals
- Lazy Loading - Carregamento sob demanda de rotas
- OnPush Change Detection - Estratégia otimizada por padrão
O projeto utiliza aliases para imports mais limpos:
@path-components/* → ./src/app/components/*
@path-services/* → ./src/app/services/*
@path-data/* → ./src/app/data/*
@path-interfaces/* → ./src/app/interfaces/*
@path-pipes/* → ./src/app/pipes/*
@path-app/* → ./src/app/*
@path-environments/* → ./src/environments/*- Zoneless change detection baseado em signals
- Lazy loading de todas as rotas
- DataService com Proxy para dados readonly
- Bundle budgets configurados
- Otimizações de build para produção
- Unit Tests: Vitest com jsdom para componentes Angular
- E2E Tests: Playwright com suporte multi-browser
- Coverage: Relatórios detalhados de cobertura
- Auto-start: Playwright inicia automaticamente o dev server
Limites configurados para produção:
- Initial bundle: warning em 600kB, erro em 800kB
- Component styles: warning em 3kB, erro em 5kB
- Polyfills: warning em 100kB, erro em 150kB
- Componentes: ChangeDetectionStrategy.OnPush
- Signals: usar
input()para inputs de componentes - Pipes: standalone e pure quando possível
- Services:
providedIn: 'root' - Naming: dot-separated (ex:
data.service.ts) - Prettier: single quotes, trailing commas, 100 chars line width
O projeto atualmente gera warnings de deprecação do Sass @import. Estas são esperadas e não indicam problema:
- Bootstrap 5.3 usa
@importinternamente - Migração para
@use/@forwardserá feita com Bootstrap 6 - Veja
CLAUDE.mdpara detalhes completos
Este é um projeto pessoal privado. Contribuições não são aceitas no momento.
Este projeto é privado e todos os direitos são reservados.
Robson Alves
- GitHub: @robsonalvesdevbr
Desenvolvido com ❤️ usando Angular