Aplicação Angular responsável por todo o fluxo de inscrições, avaliação e acompanhamento dos projetos de Iniciação Científica da USCS. O frontend é 100% standalone (componentes independentes, sem módulos) e já vem preparado para operar atrás de um proxy apontando para a API FastAPI.
- Perfis separados: aluno, orientador e secretaria com navegação e permissões específicas.
- Gestão de projetos: criação, listagem, filtros por status e paginação responsiva.
- Avaliações e relatórios: envio de PDFs para avaliadores, coleta de relatórios mensais e download em XLSX.
- Comunicações: painel de notificações, envio de e-mails/certificados e modais de confirmação.
- Autenticação: login por perfil, recuperação de senha e armazenamento seguro de tokens via serviços dedicados.
- Angular 19 com componentes standalone,
signalseRoutermoderno. - Angular Material, FontAwesome, Swiper e ng2-charts/Chart.js para UI e visualizações.
- RxJS para fluxos reativos (carregamento de listas, polling de notificações, debounces de filtros).
- Proxy local (veja
proxy.conf.json) para direcionar/apipara o backend FastAPI sem lidar com CORS. - Ambientes: configurações em
src/environments/(URLs resolvidas dinamicamente viaresolveUrl).
Estrutura de pastas relevante:
src/app/components: componentes reutilizáveis (home, footer etc.).src/app/shared: formulários de autenticação, dialog/side-nav e outros utilitários.src/app/features: fluxos por domínio (secretaria, orientador).src/app/services: comunicação HTTP e regras de sessão.
- Node.js 20 LTS
- npm 10+
- Docker e Docker Compose (opcional para produção ou testes integrados)
- Instale dependências:
npm install
- (Opcional) ajuste o proxy/backend em
proxy.conf.jsonou diretamente emsrc/environments/*.ts. - Suba o frontend com proxy para a API FastAPI:
npm start
- Servidor padrão em
http://localhost:4200. - Chamadas para
/api/**são redirecionadas ao backend configurado no proxy.
- Servidor padrão em
- Executar a suíte de unit tests (Karma + Jasmine):
Use esta rotina para validar componentes/serviços e garantir a compatibilidade dos mocks utilizados nos testes.
npm test
npm run buildGera o bundle otimizado em dist/ usando as configurações de produção do Angular.
docker compose up --build
docker compose up -d --buildAplicação disponível em http://localhost:8080.
docker build -t sgpic-frontend:latest .
docker run --rm -p 8080:80 --name sgpic sgpic-frontend:latestO nginx.conf faz proxy de /api/ para o backend. Ajuste o host se necessário:
location /api/ {
proxy_pass http://host.docker.internal:8001; # ou o IP do host/Linux
}- Ajuste o
emailApiBaseUrlemsrc/environmentsse o serviço de e-mail estiver fora do proxy padrão. - O
startusa--disable-host-checkpara facilitar desenvolvimento em redes locais; remova em ambientes restritos. - Prefira rodar os testes sempre que alterar componentes/serviços para manter a cobertura funcional.