Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Wiki Wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 16
    • Issues 16
    • 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
  • Colabora aí
  • WikiWiki
  • Wiki
  • Backend

Last edited by Guilhermo Herter Malater Nov 18, 2024
Page history
This is an old version of this page. You can view the most recent version or browse the history.

Backend

Home Escopo Processo Mockups Configuração Arquitetura Gerência BD Qualidade Frontend Backend

Models

Os modelos representam as entidades do sistema e são usados para armazenar dados essenciais, como informações de administradores, feedbacks, postagens e pontos de interesse.

Admin

O modelo Admin representa os administradores do sistema, responsáveis por realizar autenticação e gerenciar operações administrativas.

Atributos

  • name (String): Nome do administrador.
  • username (String): Nome de usuário usado para login.
  • password (String): Senha para autenticação.

Feedback

O modelo Feedback representa o feedback dado a um post no sistema, permitindo indicar curtidas e comentários.

Atributos

  • hasLiked (boolean): Indica se o post foi curtido.
  • comment (String): Comentário deixado como feedback.

PointOfInterest

O modelo PointOfInterest representa um Ponto de Interesse no sistema, contendo informações sobre a localização e descrição do ponto.

Atributos

  • id (String): Identificador único do Ponto de Interesse.
  • titulo (String): Título ou nome do Ponto de Interesse.
  • descricao (String): Descrição detalhada do Ponto de Interesse.
  • latitude (String): Latitude da localização do Ponto de Interesse.
  • longitude (String): Longitude da localização do Ponto de Interesse.

Post

O modelo Post representa uma postagem no sistema, contendo informações sobre o conteúdo, categorias, feedbacks e pontos de interesse associados.

Atributos

  • title (String): Título da postagem.
  • category (List): Lista de categorias associadas à postagem.
  • description (String): Descrição detalhada da postagem.
  • image (String, opcional): URL de uma imagem associada à postagem.
  • feedbacks (List): Lista de feedbacks dados à postagem.
  • pointOfInterest (PointOfInterest, opcional): Ponto de interesse associado à postagem.
  • id (String): Identificador único da postagem.

Services

AuthService

O AuthService é responsável por autenticar administradores. Ele implementa o UserDetailsService para carregar as informações do administrador e permitir a autenticação.

  • Método: loadUserByUsername(String username)
    Carrega um administrador a partir do banco de dados pelo nome de usuário fornecido. Retorna um objeto UserDetails para a autenticação.

PointOfInterestService

O PointOfInterestService gerencia a criação de pontos de interesse no sistema. Ele interage com o banco de dados para armazenar informações relacionadas aos pontos de interesse.

  • Método: createPointOfInterest(PointOfInterest pointOfInterest)
    Cria e insere um ponto de interesse no banco de dados, incluindo informações como título, descrição, latitude e longitude.

PostService

O PostService é responsável por gerenciar postagens. Ele permite a criação, recuperação, atualização e exclusão de postagens, além de permitir adicionar feedbacks e associar pontos de interesse.

  • Método: getPostsByCategory(String category)
    Retorna uma lista de postagens ativas, filtradas pela categoria fornecida.

  • Método: getAllPosts()
    Retorna todas as postagens ativas.

  • Método: createPost(Post post)
    Cria e insere uma nova postagem no banco de dados, com a possibilidade de associar um ponto de interesse.

  • Método: addFeedbackToPost(String postId, Feedback feedback)
    Adiciona um feedback a uma postagem específica.

  • Método: deletePostById(String id)
    Marca uma postagem como inativa (deletada).

  • Método: updatePost(String postId, Post updatedPost)
    Atualiza os dados de uma postagem existente no banco de dados.

  • Método: getPostById(String postId)
    Retorna uma postagem específica com base no ID fornecido.

Controllers

Os controllers do backend do Colabora Aí são responsáveis por gerenciar as interações entre o cliente e os serviços do sistema, expondo endpoints REST para realizar diversas operações.

PostController

O PostController gerencia as operações relacionadas a posts. As funcionalidades incluem:

  • Buscar posts por categoria: Retorna todos os posts ou filtra por uma categoria específica.
  • Criar um novo post: Adiciona um post ao sistema.
  • Excluir um post por ID: Marca um post como deletado.
  • Atualizar um post por ID: Modifica as informações de um post existente.
  • Buscar um post por ID: Recupera os detalhes de um post específico.

PointOfInterestController

O PointOfInterestController lida com a criação de Pontos de Interesse (Points of Interest - POI).
Funcionalidade principal:

  • Criar um novo Ponto de Interesse: Adiciona um POI ao sistema com base nos dados fornecidos.

FeedbackController

O FeedbackController permite adicionar feedbacks aos posts. Funcionalidade principal:

  • Adicionar Feedback a um Post: Associa um feedback ao post especificado pelo ID.

AuthController

O AuthController gerencia a autenticação de administradores no sistema. Funcionalidade principal:

  • Autenticar um Administrador: Verifica as credenciais do administrador e retorna um token JWT para autenticação, caso as credenciais sejam válidas.
Clone repository
  • Arquitetura
  • Backend
  • Banco de Dados
  • Configuracao
  • Escopo
  • Frontend
  • Gerencia
  • Mockups
  • Processo
  • Qualidade
  • Home