Frontend que entrega a interface da plataforma de orientação de carreiras. Conecta-se ao backend FastAPI para autenticação JWT, oferece rotas públicas/protegidas/admin via React Router, e usa Tailwind CSS para layout responsivo. Inclui utilitários de requisição autenticada (authFetch) e configuração pronta para deploy na Vercel.
- Tecnologias
- Configuração
- Instalação
- Scripts
- Ambientes
- Arquitetura e Fluxos
- Integração com o backend
- Build e Deploy (Vercel)
- Estrutura do projeto
- Problemas comuns
- Licença
- React + Vite
- Tailwind CSS
Crie um arquivo .env na pasta pfc_frontend/ com a URL do backend:
VITE_API_URL=http://localhost:8000No Windows (PowerShell):
npm installDesenvolvimento (Vite):
npm run devPor padrão em http://localhost:5173.
- Desenvolvimento: usa
VITE_API_URLdo.envlocal. - Produção: usa variáveis de ambiente da plataforma (ex.: Vercel) e
vercel.jsonpara reescritas SPA.
-
Roteamento:
App.jsxdefine rotas públicas, protegidas e admin.routes/ProtectedRoutes.jsxcontémRequireAutheRequireAdmin.
-
Autenticação:
utils/auth.jscentraliza:- Base URL da API (
VITE_API_URL) - Helpers de JWT e refresh token
authFetchpara anexarAuthorization: Bearer <access_token>e lidar com cookiesrefresh_token.
- Base URL da API (
-
Páginas:
pages/inclui telas de login, cadastro, recuperação de senha, áreas de usuário e admin.
-
Estilo:
- Tailwind CSS (v4) configurado via
vite.config.js.
- Tailwind CSS (v4) configurado via
-
Base URL:
- Lida por
VITE_API_URLemsrc/utils/auth.js.
- Lida por
-
Requisições autenticadas:
- Use
authFetch(...)para:- Anexar
Authorization: Bearer <access_token> - Enviar
credentials: 'include'(cookies de refresh) - Renovar o access token automaticamente em respostas 401/403 chamando
/auth/refresh
- Anexar
- Use
-
CORS no backend:
- Deve permitir a origem do frontend
allow_credentials=truepara aceitar cookies de refresh- Em produção cross-site: o backend deve setar o refresh cookie com
SameSite=None; Secure
- O arquivo
vercel.jsonfazrewritede todas as rotas paraindex.html(SPA), garantindo que o React Router funcione no servidor. - Configure variáveis no projeto Vercel:
VITE_API_URLapontando para o backend público.
Cross-site em produção:
- Garanta que o backend emita o cookie de refresh com:
SameSite=None; Secure- Domínio correto
- Ajuste CORS no backend para permitir a origem do frontend e
credentials.
pfc_frontend/
src/
main.jsx # monta <App/> com BrowserRouter
App.jsx # define rotas públicas, protegidas e admin
routes/
ProtectedRoutes.jsx # RequireAuth e RequireAdmin
pages/ # telas: login, cadastro, recuperar senha, áreas de usuário e admin
utils/
auth.js # VITE_API_URL, helpers JWT, refresh token e authFetch
vite.config.js # plugins React e Tailwind CSS (v4)
vercel.json # reescritas para SPA em produção
-
401/403 após login:
- Verifique se o navegador aceita cookies
- Confira se o backend emite
refresh_tokenem/auth/login - Valide o domínio e flags do cookie
-
CORS:
- Adicione a origem do frontend no backend
- Mantenha
allow_credentials=true
-
VITE_API_URLincorreta:- Ajuste no
.envdo frontend e nas variáveis de ambiente da plataforma de deploy
- Ajuste no
-
Rotas quebrando em produção:
- Garanta
vercel.jsoncom reescrita paraindex.html
- Garanta
Este projeto é de uso interno.