Sistema de inscrições em eventos, onde os usuários podem se inscrever, gerar links de indicação e acompanhar um ranking de indicações.
O projeto foi desenvolvido com as seguintes tecnologias:
- Java 17
- Spring Boot 3.4.2
- Maven
- Spring Web
- Spring Boot DevTools
- Spring Data JPA
- MySQL Driver
O projeto segue a organização tradicional do Spring Boot, adotando a separação de responsabilidades.
Padrão em camadas: Model, Controller, Service, Repository, Padrão DTO.
- 📌 Inscrição: Usuários podem se inscrever em eventos informando nome e e-mail.
- 🔗 Geração de Link de Indicação: Cada inscrito pode gerar um link de indicação único.
- 📊 Ranking de Indicações: Exibe um ranking baseado no número de indicações bem-sucedidas.
- 👥 Visualização de Indicações: Cada usuário pode ver quantas pessoas se inscreveram usando seu link.
Principais rotas disponíveis na aplicação:
-
Realizar inscrição no evento
(POST)/subscription/{prettyName}

-
Cadastrar usuário com id de indicação
(POST)/subscription/{prettyName}/ranking/{userId}

-
Visualizar ranking de indicações de um evento
(GET)/subscription/{prettyName}/ranking

-
Visualizar ranking de indicações de um usuário específico
(GET)/subscription/{prettyName}/ranking/{userId}

Para executar o projeto localmente, siga os passos abaixo:
-
Clone o repositório:
git clone --branch aula3 --single-branch https://github.com/lucaslpdacosta/nlw-connect-java.git
-
Importe o projeto na sua IDE de escolha (Eclipse, IntelliJ, STS):
- Selecione Import > Import Maven Projects
-
Configure o banco de dados:
-
Edite o arquivo
application.propertiese adapte o valor despring.datasource.password(linha 3) conforme sua configuração local. -
No MySQL, crie o schema do banco de dados:
CREATE SCHEMA db_events;
-
-
Inicie o servidor:
-
Execute a aplicação dentro da sua IDE ou via terminal com:
mvn spring-boot:run
-




