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
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 12
    • Issues 12
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Let Me Trial
  • Wiki
  • Wiki
  • frontend

Last edited by Gustavo Santos SIlva Mar 27, 2024
Page history

frontend

Home Escopo Processo Design/Mockups Configuração Arquitetura Gerência Código BD Qualidade Frontend Backend Analytics

Estrutura da Aplicação Frontend em React NextJs

Tecnologias Principais

  • React: Biblioteca JavaScript para construir interfaces de usuário.
  • Next.js: Framework para React que permite renderização no lado do servidor (SSR) e otimização de desempenho.
  • JavaScript/TypeScript: Linguagens de programação para escrever a lógica da aplicação.

Bibliotecas e Ferramentas Específicas

  • Axios: Biblioteca para fazer requisições HTTP.
  • Keycloak: Sistema de gerenciamento de identidade e acesso para autenticação e autorização.
  • React Router (se necessário em Next.js): Biblioteca para roteamento em aplicações React.

Padrões e Arquiteturas

  • Arquitetura Limpa: Princípios para estruturar aplicações de forma a separar claramente as preocupações.

Estrutura de Pastas

/src
  /core
    /domain
      - User.js
      - Doctor.js
      - Administrator.js
      - ...
    /useCases
      /common
        - LoginUseCase.js
        - ...
      /doctor
        - ViewPatientRecordsUseCase.js
        - ...
      /administrator
        - ManageDoctorsUseCase.js
        - ...
  /adapters
    /presenter
      - DoctorPresenter.js
      - AdminPresenter.js
      - ...
    /repository
      - UserRepository.js
      - DoctorRepository.js
      - AdminRepository.js
      - ...
  /frameworks
    /ui
      /components
        - LoginForm.jsx
        - ...
      /pages
        - LandingPage.jsx
        /doctor
          - DoctorDashboardPage.jsx
          - ...
        /administrator
          - AdminDashboardPage.jsx
          - ...
    /services
      - AuthService.js
      - DoctorService.js
      - AdminService.js
      - ...
  /utils
    - AuthUtils.js
    - ...

Explicação da Estrutura:

  • core/domain: Contém as entidades principais da sua aplicação, como usuários, médicos e administradores.

  • core/useCases: Divide a lógica de negócios em casos de uso comuns (como login) e específicos para cada tipo de usuário (médico e administrador).

  • adapters/presenter: Inclui os "presenters" que adaptam os dados da camada de caso de uso para a camada de interface do usuário, mantendo a separação entre a lógica de negócios e a apresentação.

  • adapters/repository: Contém os repositórios que abstraem a comunicação com fontes de dados externas, como APIs ou bancos de dados. Eles são usados pelos casos de uso para acessar e manipular dados.

  • frameworks/ui: Organiza os componentes e páginas da interface do usuário, incluindo a página de destino (landing page) e as páginas específicas para médicos e administradores.

  • frameworks/services: Contém serviços que encapsulam a lógica de comunicação com APIs externas, como o serviço de autenticação e os serviços específicos para médicos e administradores.

  • utils: Contém funções utilitárias, como aquelas relacionadas à autenticação e à verificação do tipo de usuário.

Fluxo de Autenticação e Redirecionamento:

  • LandingPage.jsx: Apresenta o formulário de login e utiliza o AuthService.js para autenticar o usuário via Keycloak.

  • AuthService.js: Comunica-se com o Keycloak para autenticar o usuário e determinar seu tipo (médico ou administrador).

  • AuthUtils.js: Contém funções para verificar o tipo de usuário e realizar o redirecionamento apropriado para a página de dashboard do médico (DoctorDashboardPage.jsx) ou do administrador (AdminDashboardPage.jsx).

  • DoctorDashboardPage.jsx e AdminDashboardPage.jsx: São as páginas principais para médicos e administradores, respectivamente, e utilizam os casos de uso e serviços relevantes para buscar e exibir informações específicas para cada tipo de usuário.

Clone repository
  • Banco de Dados
  • Gerencia
  • analytics
  • arquitetura
  • backend
  • codigo
  • configuracao
  • design_mockups
  • escopo
  • frontend
  • Home
  • processo
  • qualidade