Este sistema é uma API para avaliação de restaurantes, com foco em alergias alimentares. Os usuários podem avaliar restaurantes com base em três categorias de alergias: amendoim, ovo e laticínios. A plataforma permite a busca de restaurantes por código postal e alergia, ajudando usuários a encontrar opções seguras de alimentação.
Os administradores podem moderar as avaliações, aceitando ou rejeitando submissões. O sistema calcula pontuações médias dos restaurantes com base nas avaliações dos usuários, exibindo os restaurantes mais relevantes.
- Cadastro e avaliação de restaurantes: Usuários podem avaliar restaurantes com notas de 1 a 5 nas categorias de alergias alimentares (amendoim, ovo e laticínios).
- Administração de avaliações: Administradores revisam e aprovam/rejeitam avaliações submetidas por usuários.
- Busca de restaurantes: Pesquisas de restaurantes por código postal e alergias alimentares, exibindo restaurantes com avaliações relevantes e ordenados por suas notas.
- Pontuação de alergias: Cálculo das médias das avaliações para cada categoria de alergia e uma pontuação geral.
- Java 21
- Spring Boot
- Spring Data JPA
- H2 Database (banco de dados em memória)
- Lombok
- Java 21
- Maven 3.8+
-
Clone o repositório:
git clone https://github.com/seu-usuario/dining-review-api.git
-
Navegue até o diretório do projeto:
cd dining-review-api -
Execute o comando Maven para construir o projeto:
mvn clean install
-
Inicie a aplicação:
mvn spring-boot:run
-
Acesse a aplicação no navegador em:
http://localhost:8080 -
Acesse o console do H2 Database em:
http://localhost:8080/h2-console
- GET /restaurants: Retorna uma lista de todos os restaurantes.
- GET /restaurants/search: Permite buscar restaurantes por código postal e alergia (por exemplo, amendoim).
- POST /reviews: Permite que um usuário envie uma avaliação para um restaurante.
- PUT /reviews/{reviewId}: Atualiza uma avaliação existente.
- GET /reviews/pending: Retorna todas as avaliações com status "pendente".
- POST /admin/review/{reviewId}: Permite que um administrador aprove ou rejeite uma avaliação.
O banco de dados H2 é inicializado com o arquivo data.sql, que contém dados de exemplo para restaurantes, usuários e avaliações.
- joaoalbertorsc