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

Frontend

Home Escopo e Cronograma Processo Design/Mockups Configuração Arquitetura Infra Código BD Frontend API Backend

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