Estrutura de Diretórios do Projeto

O projeto segue uma estrutura de diretórios organizada e modular. A estrutura de diretórios é a seguinte:

Panorâma Geral

  • src: Pasta que contém todo o código React;
  • eslint.cjs: Arquivo que contém as configurações do ESLint do projeto;
  • gitignore: Arquivo que contém as extensões que devem ser ignoradas pelo Git.
  • index.html: Arquivo que contém título, metadados, indexadores e importações de fontes e do código React;
  • LICENSE: Licença de uso da aplicação;
  • package.json e pnpm-lock.yaml: Arquivos que contém informações gerais do projeto, bem como declaração dos pacotes a serem instalados e utilizados pela aplicação;
  • README.md: Leia-me do projeto;
  • tsconfig.json, tsconfig.node.json e vite.config.ts: Arquivos que contêm configurações do TypeScript e do Vite.

public

Pasta que contém todos os ativos estáticos da aplicação.

  • img: pasta que contém as imagens utilizadas no projeto.
    • logo.png: Arquivo cuja finalidade é servir de logo para o site, bem como servir de favicon para a aba do navegador.

src

Pasta que envolve a lógica da aplicação seguindo o padrão de código React.

api

Pasta que contém os métodos e arquivos com funções voltadas para realizar as requisições que consomem a API do WhyApp.

  • delete: arquivos que fazem requisições DELETE

    removeFriends.ts

  • get: arquivos que fazem requisições GET para a API.

    getGroupMessage.ts

    getMyProfileInfo.ts

    getUser.ts

    getUserGroups.ts

  • delete: arquivos que fazem requisições DELETE para a API.

    removeFriend.ts

  • post: arquivos que fazem requisições POST para a API.

    addFriend.ts

    createGroup.ts

    newFriendGroup.ts

    removeMembersGroup.ts

    sendNewGroupMessage.ts

    updateMyPassword.ts:

    updateMyProfileInfo.ts

    • api.ts: arquivo que importa todos os arquivos dentro das pastas irmãs e os exporta.

components

  • Pasta que contém os componentes do projeto e seus subcomponentes.

    SettingsMenu.tsx

    ChatsMenu.tsx

    SettingsMenu.tsxProfileMenu.tsx

    Customize.tsx

contexts:

  • Pasta que contém os contexts e providers utilizados na aplicação.

lib

  • Pasta que contém variáveis para as bibliotecas e HTTP client do projeto.
    • api.ts: Módulo que contém variável de com URL base e interceptors do Axios.
    • queryClient.ts: Módulo que contém variável do Query Client e seus parâmetros.

model

  • Pasta que contém os as Interfaces (ou Modelos) com os atributos (tipos) de cada Entidade da aplicação.

pages

  • Pasta que contém as páginas (rotas) da aplicação.
    • App:
    • ForgotPassword:
    • Login:
    • Register:
    • ResetPassword:
    • ResetPasswordCode:

routers

  • Pasta que contém as funções responsáveis pela gestão de rotas da biblioteca React-Router-Dom.

utils

  • Pasta que contém funções:
    • helpers: para cálculos de indexação de busca, conversão de data e conversão de arquivos para base64;
    • hooks: funções/hooks customizados do React, utilizados principalmente para finalidade de redução de código dentro dos componentes.

index.css

  • Arquivo de configurações globais CSS, como variáveis globais de fontes e cores, reset CSS, estilização das tags body e html, e estilos da barra de scroll.

main.tsx

  • Arquivo configuração e renderização da raíz do React.

vite-env.d.ts

  • Arquivo padrão que faz referenciação para a tipagem do vite/client

Observações

  • A estrutura de pastas pode variar dependendo das necessidades do projeto e do time de desenvolvimento.
  • Algumas pastas ou arquivos podem faltar na estrutura de pastas apresentada acima.
  • A documentação pode ser atualizada à medida que o projeto evolui e muda.