Skip to content

ArturWood/api-pass-in

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Java Logo SpringFramework Logo

Pass In - Aplicação Java para gerenciar eventos e participantes

Projeto back-end desenvolvido utilizando Java 17 com Spring Framework

API REST responsavel por realizar operações de buscas e escritas em banco de dados local HSQLDB (HyperSQL DataBase) e retornar os dados em JSON.

Ela oferece endpoints para criar, obter detalhes e listar eventos, bem como registrar participantes em eventos e gerar crachás para os participantes.

postman

Pré-requisitos

  • Java Development Kit (JDK) versão 17
  • IDE Java (como Eclipse ou IntelliJ) ou um editor de texto para escrever o código
  • Fazer download das dependências e plugins utilizando maven
  • Postman (opcional, para testar os endpoints localmente)

Como executar o projeto

Back-end

Pré-requisitos: Java JDK 17

# clonar repositório
git clone https://github.com/ArturWood/api-pass-in.git

# entrar na pasta do projeto
cd api-pass-in

# executar o projeto
./mvnw spring-boot:run

Endpoints

A aplicação expõe os seguintes endpoints:

  • GET /events/{eventId}: Recupera os detalhes de um evento específico com base no ID do evento.
  • POST /events: Cria um novo evento com base nos dados fornecidos no corpo da solicitação.
  • GET /events/{eventId}/attendees: Lista os participantes de um evento específico com base no ID do evento.
  • POST /events/{eventId}/attendees: Registra um novo participante em um evento específico com base no ID do evento e nos dados fornecidos no corpo da solicitação.
  • GET /attendees/{attendeeId}/badge: Recupera o crachá de um participante com base no ID do participante.
  • POST /attendees/{attendeeId}/check-in: Registra o check-in de um participante com base no ID do participante.

Estrutura do Projeto

O projeto possui a seguinte estrutura de arquivos:

├───src                                          
│   ├───main                                     
│   │   ├───java                                 
│   │   │   └───com                              
│   │   │       └───dev
│   │   │           └───api.pass.in
│   │   │               ├───controller
│   │   │               ├───dto
│   │   │               ├───model
│   │   │               ├───infra
│   │   │               ├───repository
│   │   │               └───service
│   │   └───resources
│   │       ├───static
│   │       └───templates
└── .gitignore
└── api-pass-in.postman_collection.json
└── pom.xml
  • O pacote resources contém o arquivo application.properties que configura o ambiente da aplicação, e a configuração do banco de dados no application-test.properties.
  • O pacote controller contém as classes que definem os endpoints da API.
  • O pacote service contém as classes responsáveis por acesso ao BD e realizar a lógica de negócio.
  • O pacote infra contém a classe ExceptionEntityHandler responsavel por lidar com as exceptions lançadas pelo controller ou service.
  • O pacote model contém as classes que representam um evento ou participante e seu mapeamento no BD.
  • O pacote repository contém as interfaces que definem operações de acesso a dados para as entidades.
  • Na source do projeto temos o arquivo .gitignore que especifica os arquivos e pastas que devem ser ignorados pelo controle de versão do Git
  • O arquivo api-pass-in.postman_collection para consultar e testar os endpoints na API.
  • O arquivo pom.xml para download das dependencias necessarias para o projeto usando maven.

Documentação

No projeto foi utilizado o HSQLDB para desenvolvimento local;
Foi adicionado a dependência springdoc para facilitar a documentação e visualização dos endpoints (acessar rodando localmente);
Alem das dependencias para desenvolvimento com Spring Framework - Web, Bean, JPA;
Links para uso e documentação:

https://hsqldb.org/web/hsqlDocsFrame.html
https://spring.io/projects/spring-data-jpa
https://docs.spring.io/spring-boot/docs/current/reference/html/web.html
http://localhost:8080/swagger-ui/index.html

swagger

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages