Skip to content

Challenge completed for the Junior Backend Developer position at Horizon - Innovation and Technology company.

Notifications You must be signed in to change notification settings

mitaloammon/hands-on-laravel-API-circuito-de-Surf

Repository files navigation

Circuito Mundial de Surf (Laravel 10.8, MySQL 8.0.31)

O Projeto Contém :
  • Laravel Framework
  • Postman API

Desafio Horizon

Este é um desafio proposto pela empresa Horizon para o desenvolvimento de uma API que determina o vencedor de cada bateria em um circuito de surfe. A API calcula o vencedor com base na média aritmética das três notas de cada surfista em uma determinada bateria.

Funcionalidades

A API oferece as seguintes funcionalidades:

  • Cadastro de surfistas: permite cadastrar informações sobre os surfistas, como nome e país de origem.
  • Criação de baterias: permite criar baterias de surfe, associando os surfistas que irão competir em cada uma.
  • Registro das ondas: permite registrar cada onda por dois surfistas em uma bateria registrada.
  • Registro de notas: possibilita registrar as notas recebidas pelos surfistas em cada bateria.
  • Cálculo do vencedor: realiza o cálculo da média aritmética das notas de cada surfista em uma bateria e determina o vencedor com base nesse cálculo.

Endpoints

A API possui os seguintes endpoints:

GET /surfistas: retorna a lista de todos os surfistas cadastrados.
POST /surfistas: cadastra um novo surfista. Os surfistas participantes são enviados no corpo da requisição em formato JSON.
POST /baterias: cadastra uma nova bateria. As baterias cadastradas são enviadas no corpo da requisição em formato JSON. 
GET /baterias: retorna a lista de todas as baterias criadas.
POST /ondas: cadastra uma nova onda para cada surfista e bateria de acordo com sua chave estrangeira. As ondas são enviadas no corpo da requisição em formato JSON.
GET /ondas: retorna as ondas registradas.
POST /notas: cadastra cada nova nota por surfista dentro de uma bateria de acordo com sua chave primária. As notas são enviadas no corpo da requisição em formato JSON.
GET /notas: retorna as notas registradas.
GET /baterias/vencedor/{id}: retorna os surfistas vencedores registrados de acordo com sua pontuação em cada bateria.

Ambiente de Desenvolvimento

  1. Criação do Projeto
$ composer install
  1. Crie e adapte o arquivo .env com base no exemplo
$ cd .env.example .env
  1. Crie seu esquema de banco de dados
CREATE DATABASE circuito_de_surf
  1. Execute as migrations para criar as tabelas
`$ php artisan migrate --seed`
  1. Em outra janela de Terminal Execute o seguinte comando para dar início ao servidor
$ php artisan serve
  1. Vá para http://localhost:8000 e veja em ação.

Licença

Este projeto está licenciado sob a Licença MIT.

About

Challenge completed for the Junior Backend Developer position at Horizon - Innovation and Technology company.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published