Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • W Wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Create a new issue
  • Jobs
  • Issue Boards
Collapse sidebar
  • Coopera RS
  • Wiki
  • Wiki
  • Frontend

Last edited by Nicolas dos Santos Moraes Jun 06, 2025
Page history
This is an old version of this page. You can view the most recent version or browse the history.

Frontend

Arquitetura do Frontend (React)

A aplicação frontend do Coopera-RS é construída utilizando React com TypeScript, seguindo uma arquitetura baseada em componentes para modularidade e reutilização de código. A estrutura do projeto visa separar responsabilidades, facilitando a manutenção e escalabilidade.

Tecnologias Principais

  • React (v19): Biblioteca principal para construção da interface de usuário.
  • TypeScript: Superset do JavaScript que adiciona tipagem estática, aumentando a robustez do código.
  • Vite: Ferramenta de build e servidor de desenvolvimento rápido.
  • React Router (v7): Gerenciamento de rotas da aplicação (navegação entre páginas).
  • Axios: Cliente HTTP para realizar requisições à API backend.
  • Material UI (MUI v6): Biblioteca de componentes UI para agilizar o desenvolvimento da interface.
  • Sass: Pré-processador CSS para estilização avançada e organizada.
  • Leaflet & React-Leaflet: Bibliotecas para integração e exibição de mapas interativos.
  • Context API (React): Utilizada para gerenciamento de estado global, especialmente para autenticação.

Estrutura de Pastas (/src)

A organização do código fonte segue um padrão comum em projetos React:

  • /components: Contém componentes React reutilizáveis em várias partes da aplicação (ex: CustomButton, Header, StoreCard, ProductGrid, StoreMap). A ideia é que esses componentes sejam genéricos e focados em UI.
  • /pages: Define as páginas principais da aplicação, que geralmente compõem diferentes componentes e lidam com a lógica específica daquela tela (ex: Login, Register, Home, SearchPage, Store, AddProducts).
  • /services: Agrupa a lógica de comunicação com a API backend. Inclui a configuração do axios (api.ts, httpService.ts) e funções específicas para cada recurso (ex: authService, FetchStore, LocationService). Também contém as interfaces (/interfaces) que definem os tipos de dados trocados com o backend (ex: Product, Store).
  • /contexts: Armazena os contextos da aplicação, como o AuthContext, responsável por gerenciar o estado de autenticação do usuário (token, dados do usuário) e prover funções de login/logout para os componentes.
  • /assets: (Não explicitamente listada, mas comum) Para armazenar arquivos estáticos como imagens, fontes, etc.
  • /styles ou /scss: (Não explicitamente listada, mas comum ou implícita pelo uso de .scss) Arquivos de estilização global ou variáveis Sass.
  • /utils: Funções utilitárias genéricas que podem ser usadas em diferentes partes do código (ex: validadores, formatadores).
  • main.tsx: Ponto de entrada da aplicação React.
  • App.tsx: Componente raiz que geralmente configura o roteamento principal.

Fluxo de Dados e Estado

  • Estado Local: Componentes gerenciam seu próprio estado interno usando useState quando necessário.
  • Estado Global: O estado de autenticação (usuário logado, token) é gerenciado globalmente através do AuthContext. Componentes que precisam acessar ou modificar esse estado utilizam o hook useAuth.
  • Comunicação com API: As páginas e, em alguns casos, componentes, utilizam as funções definidas nos /services para buscar ou enviar dados para o backend. O httpService encapsula as chamadas axios, adicionando a baseURL (configurada via VITE_API_URL) e o prefixo /api.

Roteamento

O React Router é usado para definir as rotas da aplicação. Existe um componente PrivateRoute que provavelmente protege rotas que só podem ser acessadas por usuários autenticados, verificando o estado no AuthContext.

Estilização

A estilização combina o uso de Sass (arquivos .scss associados aos componentes/páginas) para estilos customizados e a biblioteca Material UI para componentes pré-construídos e um sistema de design consistente.

Clone repository
  • API Backend
  • Escopo e Cronograma
  • Frontend
  • Processo
  • arquitetura
  • banco de dados
  • codigo
  • configuracao
  • design
    • mockups
  • Home
  • infraestrutura