Sistema de backoffice para gerenciamento do processo seletivo e administração de candidatos.
Backend API: configurável via VITE_API_URL (em dev/local, aponte para seu backend, ex.: http://localhost:31535)
O PD Backoffice é uma aplicação administrativa desenvolvida com Vite, React, TypeScript e Material-UI, para gerenciamento completo do processo seletivo, incluindo:
- Gerenciamento de Candidatos: Listagem, busca e visualização de dados de candidatos
- Documentação: Upload, validação e gerenciamento de documentos (RG, comprovante de endereço, histórico escolar)
- Provas e Avaliações: Gerenciamento de notas, horários e resultados de provas
- Mérito Acadêmico: Aprovação/rejeição de documentos de mérito
- Cidades e Locais: Gerenciamento de cidades permitidas e locais de prova
- Autenticação JWT: Login seguro com renovação automática de tokens
- Arquitetura em Camadas: Separação clara entre UI (pages), lógica (hooks) e comunicação HTTP (services)
-
Core HTTP (
src/core/http/httpClient.ts):- Wrapper para
fetchcom tratamento de JSON e cabeçalhos automáticos (Content-Type+Authorization: Bearer <token>). - Interceptor de resposta: ao receber
401 Unauthorized, dispara callback para renovação de token. - Método genérico
request<T>(method, baseUrl, endpoint, payload?)e helpers (get,post,put,delete,patch).
- Wrapper para
-
Services (
src/core/http/services/authService.ts):- Encapsula chamadas ao backend usando
ENDPOINTS.AUTHe aVITE_API_URL. - Fornece métodos
login,register,refreshTokencom payloads tipados emsrc/interfaces/authInterfaces.ts.
- Encapsula chamadas ao backend usando
-
Store Redux (
src/core/store):- Slice
authcuida deaccessToken,refreshTokene dados deUser. - PersistConfig: persiste apenas
authemlocalStorage, com criptografia usandoVITE_PERSIST_SECRET. - onUnauthorized: configura
httpClient.setOnUnauthorizedpara dispararauthService.refreshTokene automaticamente atualizar o token no store, ou limpar credenciais em caso de falha.
- Slice
-
Contexto de Autenticação (
src/app/providers/AuthProvider.tsx+src/hooks/useAuth.ts):- AuthProvider expõe
accessToken,refreshToken,user, além delogin,register,logoutvia contexto React. - useAuth encapsula chamadas a
authService, gerencia estados deloadingeerror, e invocasetCredentialsno sucesso.
- AuthProvider expõe
-
Routing (
src/app/routes/routes.tsx):- Configuração de rotas com React Router v6.
- AuthLayout para telas de login/registro (tema toggle + formulário animado).
- AuthMiddleware: componente que verifica
accessTokenantes de renderizar AppLayout. - Áreas públicas (
/login,/register) e privadas (/home,*paraNotFound).
-
Layouts & Componentes:
- AuthLayout: provê MUI
ThemeProvider,CssBaseline, toggle de tema, e container responsivo para formulários. - AppLayout: barra lateral (
LayoutSidebar) com navegação, topo (Header) e zona de rendering (<Outlet/>). - UI reproducível:
AuthCard,Header,LayoutSidebar,LanguageSwitcherpara alternância de idioma.
- AuthLayout: provê MUI
-
Páginas (
src/pages):- authPages:
Login.tsx,Register.tsxcom validação via Yup e Formik, controle de visibilidade de senha e feedback de erro. - appPages: diretórios
publicPageseprivatePagesprontos para expansão (ex.:/home,/dashboard). - NotFound: fallback para rotas não definidas.
- authPages:
-
Internacionalização & Estilos:
- i18n configurado em
src/assets/i18n, com tradução PT-BR padrão. - Tema MUI customizado em
src/assets/styles/theme.ts(paletas primárias/segundárias, tipografia Ubuntu).
- i18n configurado em
-
Utilitários (
src/util/constants.ts):- ENDPOINTS: rotas de API (
AUTH,CRM,LICENSE). - VALIDATION_PATTERNS: expressões regulares para e‑mail, CPF, senha etc.
- ENDPOINTS: rotas de API (
- Front-end: React, Vite, Redux Toolkit
- Validação: Yup, Formik
- Persistência: redux-persist, redux-persist-transform-encrypt
- Estilização: CSS Modules / Styled Components (ou outra de sua escolha)
-
Clone o repositório:
git clone https://github.com/Fer-Magalhaes/mockup-web.git cd mockup-web -
Instale as dependências:
npm install # ou yarn install -
Crie um arquivo de ambiente
.env.localna raiz do projeto com as variáveis (recomendado em dev/local para evitar usar um backend inesperado):VITE_API_URL=http://localhost:31535 VITE_PERSIST_SECRET=SEU_SECRET_PARA_CRIPTOGRAFIA
-
Inicie o servidor de desenvolvimento:
npm run dev
-
Acesse
http://localhost:5100no navegador.
Para gerar os arquivos otimizados para produção:
npm run build
# ou
yarn buildO resultado ficará na pasta dist/.
- Faça um fork deste repositório.
- Crie uma branch com sua feature:
git checkout -b feature/nome-da-feature - Commit suas alterações:
git commit -m 'Adiciona nova feature' - Envie para a branch original:
git push origin feature/nome-da-feature - Abra um Pull Request.
Este projeto está licenciado sob a MIT License.