Skip to content

POG-SMD/POG-Frontend

Repository files navigation

Template Frontend

Este repositório é um template frontend configurado com React, TypeScript e várias ferramentas modernas para desenvolvimento web. Abaixo está uma explicação de cada dependência e instruções para instalação e uso.


Dependências

Principais:

  • @radix-ui/react-dialog, @radix-ui/react-popover, @radix-ui/react-select, @radix-ui/react-slot, @radix-ui/react-tooltip
    Conjunto de componentes acessíveis e altamente configuráveis da biblioteca Radix UI para criação de elementos de interface como diálogos, popovers, selects e tooltips.

  • autoprefixer
    Adiciona automaticamente prefixos CSS para garantir compatibilidade entre navegadores.

  • axios
    Biblioteca para fazer requisições HTTP de forma simples e eficiente.

  • class-variance-authority
    Facilita a criação de classes CSS dinâmicas e variantes condicionais.

  • clsx
    Utilitário para manipulação de strings de classe CSS de forma dinâmica.

  • cmdk
    Utilitário para criar Command Menus altamente performáticos.

  • postcss
    Ferramenta para transformar CSS com plugins, como o TailwindCSS e o Autoprefixer.

  • react, react-dom
    Bibliotecas principais do React para construção de interfaces de usuário.

  • react-router-dom
    Gerenciador de rotas para aplicativos React.

  • tailwind-merge
    Mescla classes do TailwindCSS e resolve conflitos de forma eficiente.

  • tailwindcss
    Framework CSS utilitário para criar estilos rapidamente.


Dependências de Desenvolvimento:

  • @iconify/react
    Biblioteca de ícones para React.

  • @types/node, @types/react, @types/react-dom
    Tipos para desenvolvimento TypeScript com Node.js, React e ReactDOM.

  • @typescript-eslint/eslint-plugin, @typescript-eslint/parser
    Ferramentas para linting e análise de código TypeScript.

  • @vitejs/plugin-react
    Plugin oficial do Vite para suporte ao React.

  • eslint, eslint-plugin-react-hooks, eslint-plugin-react-refresh
    Configurações para linting e boas práticas em projetos React.

  • i18next, react-i18next
    Ferramentas para internacionalização (i18n) de projetos React.

  • typescript
    Linguagem que adiciona tipagem estática ao JavaScript.

  • vite
    Ferramenta de build rápida e moderna para projetos web.


Instalação

1. Clone o repositório:

git clone https://github.com/seu-usuario/template-frontend.git
cd template-frontend

2. Instale as depêndencias:

Certifique-se de ter o Node.js e npm ou Yarn instalados.

Com npm:

npm install

Com yarn:

yarn install

4. Build para produção:

Com npm:

npm run build

Com yarn:

yarn build

5. Pré-visualização do build:

Com npm:

npm run preview

Com yarn:

yarn preview

Estrutura do Projeto

  • src/: Código-fonte do projeto.
  • public/: Arquivos estáticos.
  • vite.config.ts: Configuração do Vite.

Requisitos Da Aplicação

Requisito Macro Requisitos Funcionais / Não Funcionais Departamento Detalhes Status

Requisito Macro 01 -> Setup Geral do projeto

Criar componentes gerais do projeto. Req.F. 1.1 Front-end Desenvolver os componentes básicos e reutilizáveis que serão utilizados em diferentes partes da aplicação, garantindo consistência e funcionalidade.
Configurar rotas gerais do projeto Req.F. 1.2 Front-end Implementar a estrutura de navegação da aplicação, assegurando que as páginas estejam interligadas corretamente.
Configurar traduções de formulário gerais do projeto Req.F. 1.3 Front-end Adicionar suporte de tradução de textos com foco em acessibilidade e componentização de validação para erros em formulários.
Configurar a biblioteca TailwindCSS. Req.F. 1.4 Front-end Integrar a biblioteca de estilização TailwindCSS, incluindo sua configuração inicial para personalizações futuras.

Requisito Macro 02 -> Registro de novos usuários

Cadastrar e-mail e senha de novos usuários. Req.F. 2.1 Front-end Criar o formulário que permite ao usuário inserir e-mail e senha para cadastro na plataforma
Implementar validação de e-mail e senha Req.F. 2.2 Front-end Garantir que os campos de e-mail e senha atendam aos critérios de validação, como formato correto e segurança mínima exigida.
Adicionar tratamento de erros em validação de novos usuários. Req.F. 2.3 Front-end Implementar mensagens claras e intuitivas para erros comuns, como e-mail inválido ou senha fraca.
Montagem da tela de Cadastro de e-mail e senha para novos usuários. Req.F. 2.4 Front-end Implementar tela para cadastramento de novos usuários utilizando e-mail e senha.
Criar endpoints para cadastro de novos usuários. Req.NF. 2.1 Back-end Desenvolver os serviços necessários para receber, validar e processar os dados enviados pelo front-end.
Cadastrar e-mail e senha de novos usuários. Req.NF. 2.2 Back-end Salvar os dados de cadastro no banco de dados após validação.
Criar modelo para usuários no banco de dados. Req.NF. 2.3 Back-end Estruturar as tabelas e colunas no banco de dados para armazenar informações de usuário, incluindo hashing de senha para segurança.
Implementar validação de e-mail e senha no back-end. Req.NF. 2.4 Back-end Adicionar regras de validação para evitar cadastros inválidos e garantir a integridade dos dados recebidos.
Integrar novos usuários ao banco de dados. Req.NF. 2.5 Back-end Garantir que os dados validados sejam salvos corretamente no banco de dados.
Adicionar tratamento de erros no cadastro de usuários. Req.NF. 2.6 Back-end Desenvolver mecanismos para lidar com erros, como falhas de conexão ou duplicidade de e-mail.
Implementar validação de e-mail e senha no back-end. Req.NF. 2.7 Back-end Adicionar regras de validação para evitar cadastros inválidos e garantir a integridade dos dados recebidos.

Requisito Macro 03 -> Login de usuários existentes

Adicionar recuperação de senha via e-mail. Req.F. 3.1 Front-end Implementar forma de recuperar senhas esquecidas via e-mail dos colaboradores.
Montagem da tela de Login usando e-mail e senha para usuários existentes. Req.F. 3.2 Front-end Implementar tela para login de usuários existentes utilizando e-mail e senha.
Validação de login utilizando e-mail e senha para usuários existentes. Req.F. 3.3 Front-end Implementar uma validação de dados como e-mail e senha para login do usuário existente.

Requisito Macro 04 -> Cadastro de novos materiais

Montagem do modal de cadastro de novo material Req.F. 4.1 Front-end Implementar a montagem do modal de novo material, para que o administrador possa criar um novo material com uma descrição, tipo de material, nome, quantidade e imagem.
Integração do backend com o modal de cadastro de novo material. Req.F. 4.2 Front-end Implementar a integração do modal de novo material, para que o administrador possa criar um novo material com uma descrição, tipo de material, nome, quantidade e imagem de forma 100% funcional.
Validação de formulário do modal de cadastro de novo material. Req.F. 4.3 Front-end Validar o formulário com retornos visuais para o que deverá ser feito pelo administrador para cadastrar de forma correta um novo material
Adicionar modelo de materiais no banco de dados. Req.NF. 4.1 Back-end Adicionar modelo para o banco de dados para poder ser aplicado as chaves de materiais no backend
Implementar endpoints para cadastro de novo material. Req.NF. 4.2 Back-end Implementar endpoints para cadastro de novo material, para assim permitir a funcionalidade do front-end
Implementar validação de chaves retornadas pelo frontend. Req.NF. 4.3 Back-end Implementar validação de chaves retronadas pelo frontend, para que caso o tipo seja diferente do que pedido pelo backend seja retornado um erro para o frontend.

Requisito Macro 05 -> Edição de materiais já existentes

Montagem do modal de edição de material já existente Req.F. 5.1 Front-end Implementar a montagem do modal de editar material já existente, para que o administrador possa editar um material já existente com uma descrição, tipo de material, nome, quantidade e imagem.
Integração do backend com o modal de edição de material já existente. Req.F. 5.2 Front-end Implementar a integração do modal de material já existente, para que o administrador possa editar um material com uma descrição, tipo de material, nome, quantidade e imagem de forma 100% funcional.
Validação de formulário do modal de edição de material já existente. Req.F. 5.3 Front-end Validar o formulário com retornos visuais para o que deverá ser feito pelo administrador para editar de forma correta um material já existente
Implementar endpoints para edição de material já existente. Req.NF. 5.1 Back-end Implementar endpoints para edição de material já existente, para assim permitir a funcionalidade do front-end
Implementar validação de chaves retornadas pelo frontend. Req.NF. 5.2 Back-end Implementar validação de chaves retronadas pelo frontend, para que caso o tipo seja diferente do que pedido pelo backend seja retornado um erro para o frontend.

Requisito Macro 06 -> Vizualização detalhada de material existente

Montagem do modal de vizualização de material já existente Req.F. 6.1 Front-end Implementar a montagem do modal de vizualização material já existente, para que o usuário possa vizualizar um material já existente com uma descrição, tipo de material, nome, quantidade e imagem.
Integração do backend com o modal de vizualização de material já existente. Req.F. 6.2 Front-end Implementar a integração do modal de vizualização de material já existente, para que o usuário possa vizualizar um material com uma descrição, tipo de material, nome, quantidade e imagem de forma 100% funcional.
Implementar endpoints para vizualização de material já existente. Req.NF. 6.1 Back-end Implementar endpoints para vizualização de material já existente, para assim permitir a funcionalidade do front-end
Implementar validação de chaves retornadas pelo frontend. Req.NF. 6.2 Back-end Implementar validação de chaves retronadas pelo frontend, para que caso o tipo seja diferente do que pedido pelo backend seja retornado um erro para o frontend.

Requisito Macro 07 -> Vizualização de materiais existentes

Montagem da tela de vizualização de materiais existentes Req.F. 7.1 Front-end Implementar a montagem da tela de materiais existentes, para que o usuário possa vizualizar um material já existente com uma descrição, tipo de material, nome, quantidade e imagem.
Integração do backend com a tela de vizualização de material já existente. Req.F. 7.2 Front-end Implementar a integração da tela de vizualização de materiais existentes, para que o administrador possa vizualizar materiais existentes com uma descrição, tipo de material, nome, quantidade e imagem de forma 100% funcional.
Implementar endpoints para vizualização de materiais existentes. Req.NF. 7.1 Back-end Implementar endpoints para vizualização de materiais existentes, para assim permitir a funcionalidade do front-end
Implementar validação de chaves retornadas pelo frontend. Req.NF. 7.2 Back-end Implementar validação de chaves retronadas pelo frontend, para que caso o tipo seja diferente do que pedido pelo backend seja retornado um erro para o frontend.

Requisito Macro 08 -> Reserva de materiais existentes

Montagem do modal de reserva de materiais existentes Req.F. 8.1 Front-end Implementar a montagem do modal de reserva, para que o usuário possa reservar um material já existente.
Integração do backend com o modal de reserva de material já existente. Req.F. 8.2 Front-end Implementar a integração do modal de reserva de materiais existentes de forma 100% funcional.
Implementar endpoints para reserva de materiais existentes. Req.NF. 8.1 Back-end Implementar endpoints para vizualização de materiais existentes, para assim permitir a funcionalidade do front-end
Implementar validação de chaves retornadas pelo frontend. Req.NF. 8.2 Back-end Implementar validação de chaves retronadas pelo frontend, para que caso o tipo seja diferente do que pedido pelo backend seja retornado um erro para o frontend.

Requisito Macro 09 -> Cadastro de novos espaços

Montagem do modal de cadastro de novo espaço Req.F. 9.1 Front-end Implementar a montagem do modal de novo espaço, para que o administrador possa criar um novo espaço com uma descrição, tipo de espaço e nome.
Integração do backend com o modal de cadastro de novo espaço Req.F. 9.2 Front-end Implementar a integração do modal de novo espaço, para que o administrador possa criar um novo espaço com uma descrição, tipo de espaço e nome de forma 100% funcional.
Validação de formulário do modal de cadastro de novo espaço Req.F. 9.3 Front-end Validar o formulário com retornos visuais para o que deverá ser feito pelo administrador para cadastrar de forma correta um novo espaço.
Adicionar modelo de espaços no banco de dados Req.NF. 9.1 Back-end Adicionar modelo para o banco de dados para poder ser aplicado às chaves de espaços no backend.
Implementar endpoints para cadastro de novo espaço Req.NF. 9.2 Back-end Implementar endpoints para cadastro de novo espaço, permitindo a funcionalidade do front-end.
Implementar validação de chaves retornadas pelo frontend Req.NF. 9.3 Back-end Implementar validação de chaves retornadas pelo frontend, para que, caso o tipo seja diferente do esperado pelo backend, seja retornado um erro.

Requisito Macro 10 -> Edição de espaços já existentes

Montagem do modal de edição de espaço já existente Req.F. 10.1 Front-end Implementar a montagem do modal de edição de espaço já existente, para que o administrador possa editar um espaço já existente com uma descrição, tipo de espaço e nome.
Integração do backend com o modal de edição de espaço já existente Req.F. 10.2 Front-end Implementar a integração do modal de espaço já existente, para que o administrador possa editar um espaço com uma descrição, tipo de espaço e nome de forma 100% funcional.
Validação de formulário do modal de edição de espaço já existente Req.F. 10.3 Front-end Validar o formulário com retornos visuais para o que deverá ser feito pelo administrador para editar de forma correta um espaço já existente.
Implementar endpoints para edição de espaço já existente Req.NF. 10.1 Back-end Implementar endpoints para edição de espaço já existente, permitindo a funcionalidade do front-end.
Implementar validação de chaves retornadas pelo frontend Req.NF. 10.2 Back-end Implementar validação de chaves retornadas pelo frontend, para que, caso o tipo seja diferente do esperado pelo backend, seja retornado um erro.

Requisito Macro 11 -> Visualização detalhada de espaço existente

Montagem do modal de visualização de espaço já existente Req.F. 11.1 Front-end Implementar a montagem do modal de visualização de espaço já existente, para que o usuário possa visualizar um espaço já existente com uma descrição, tipo de espaço e nome.
Integração do backend com o modal de visualização de espaço já existente Req.F. 11.2 Front-end Implementar a integração do modal de visualização de espaço já existente, para que o usuário possa visualizar um espaço com uma descrição, tipo de espaço e nome de forma 100% funcional.
Implementar endpoints para visualização de espaço já existente Req.NF. 11.1 Back-end Implementar endpoints para visualização de espaço já existente, permitindo a funcionalidade do front-end.
Implementar validação de chaves retornadas pelo frontend Req.NF. 11.2 Back-end Implementar validação de chaves retornadas pelo frontend, para que, caso o tipo seja diferente do esperado pelo backend, seja retornado um erro.

Requisito Macro 12 -> Reserva de espaços existentes

Montagem do modal de reserva de espaços existentes Req.F. 12.1 Front-end Implementar a montagem do modal de reserva, para que o usuário possa reservar um espaço já existente.
Integração do backend com o modal de reserva de espaço já existente Req.F. 12.2 Front-end Implementar a integração do modal de reserva de espaços existentes de forma 100% funcional.
Implementar endpoints para reserva de espaços existentes Req.NF. 12.1 Back-end Implementar endpoints para reserva de espaços existentes, permitindo a funcionalidade do front-end.
Implementar validação de chaves retornadas pelo frontend Req.NF. 12.2 Back-end Implementar validação de chaves retornadas pelo frontend, para que, caso o tipo seja diferente do esperado pelo backend, seja retornado um erro.

Requisito Macro 13 -> Cadastro de novos links

Montagem do modal de cadastro de novo link Req.F. 13.1 Front-end Implementar a montagem do modal de novo link, para que o administrador possa criar um novo link com uma descrição, nome, URL e tipo.
Integração do backend com o modal de cadastro de novo link Req.F. 13.2 Front-end Implementar a integração do modal de novo link, para que o administrador possa criar um novo link com uma descrição, nome, URL e tipo. de forma 100% funcional.
Validação de formulário do modal de cadastro de novo link Req.F. 13.3 Front-end Validar o formulário com retornos visuais para o que deverá ser feito pelo administrador para cadastrar de forma correta um novo link.
Adicionar modelo de links no banco de dados Req.NF. 13.1 Back-end Adicionar modelo para o banco de dados para poder ser aplicado às chaves de links no backend.
Implementar endpoints para cadastro de novo link Req.NF. 13.2 Back-end Implementar endpoints para cadastro de novo link, permitindo a funcionalidade do front-end.
Implementar validação de chaves retornadas pelo frontend Req.NF. 13.3 Back-end Implementar validação de chaves retornadas pelo frontend, para que, caso o tipo seja diferente do esperado pelo backend, seja retornado um erro.

Requisito Macro 14 -> Edição de links já existentes

Montagem do modal de edição de link já existente Req.F. 14.1 Front-end Implementar a montagem do modal de edição de link já existente, para que o administrador possa editar um link já existente com uma descrição, nome, URL e tipo..
Integração do backend com o modal de edição de link já existente Req.F. 14.2 Front-end Implementar a integração do modal de link já existente, para que o administrador possa editar um link com uma descrição, nome, URL e tipo. de forma 100% funcional.
Validação de formulário do modal de edição de link já existente Req.F. 14.3 Front-end Validar o formulário com retornos visuais para o que deverá ser feito pelo administrador para editar de forma correta um link já existente.
Implementar endpoints para edição de link já existente Req.NF. 14.1 Back-end Implementar endpoints para edição de link já existente, permitindo a funcionalidade do front-end.
Implementar validação de chaves retornadas pelo frontend Req.NF. 14.2 Back-end Implementar validação de chaves retornadas pelo frontend, para que, caso o tipo seja diferente do esperado pelo backend, seja retornado um erro.

Requisito Macro 15 -> Visualização detalhada de link existente

Montagem do modal de visualização de link já existente Req.F. 15.1 Front-end Implementar a montagem do modal de visualização de link já existente, para que o usuário possa visualizar um link já existente com uma descrição, nome, URL e tipo..
Integração do backend com o modal de visualização de link já existente Req.F. 15.2 Front-end Implementar a integração do modal de visualização de link já existente, para que o usuário possa visualizar um link com uma descrição, nome, URL e tipo. de forma 100% funcional.
Implementar endpoints para visualização de link já existente Req.NF. 15.1 Back-end Implementar endpoints para visualização de link já existente, permitindo a funcionalidade do front-end.
Implementar validação de chaves retornadas pelo frontend Req.NF. 15.2 Back-end Implementar validação de chaves retornadas pelo frontend, para que, caso o tipo seja diferente do esperado pelo backend, seja retornado um erro.

Requisito Macro 16 -> Vizualização de usuários já existentes

Montagem do modal de visualização de usuário já existente Req.F. 16.1 Front-end Implementar a montagem do modal de visualização de usuário já existente, para que o administrador possa visualizar um usuário já existente com um nome, email e imagem.
Integração do backend com o modal de visualização de usuário já existente Req.F. 16.2 Front-end Implementar a integração do modal de visualização de usuário já existente, para que o administrador possa visualizar um usuário com um nome, email e imagem de forma 100% funcional.
Implementar endpoints para visualização de usuário já existente Req.NF. 16.1 Back-end Implementar endpoints para visualização de usuário já existente, permitindo a funcionalidade do front-end.
Implementar validação de chaves retornadas pelo frontend Req.NF. 16.2 Back-end Implementar validação de chaves retornadas pelo frontend, para que, caso o tipo seja diferente do esperado pelo backend, seja retornado um erro.

Requisito Macro 17 -> Deleção de usuários já existentes

Montagem do modal de deleção de usuário já existente Req.F. 17.1 Front-end Implementar a montagem do modal de deleção de usuário já existente, para que o administrador possa deletar um usuário já existente.
Integração do backend com o modal de deleção de usuário já existente Req.F. 17.2 Front-end Implementar a integração do modal de deleção de usuário já existente, para que o administrador possa deletar um usuário de forma 100% funcional.
Implementar endpoints para deleção de usuário já existente Req.NF. 17.1 Back-end Implementar endpoints para deleção de usuário já existente, permitindo a funcionalidade do front-end.
Implementar validação de chaves retornadas pelo frontend Req.NF. 17.2 Back-end Implementar validação de chaves retornadas pelo frontend, para que, caso o tipo seja diferente do esperado pelo backend, seja retornado um erro.