Hiper Pass é uma estrutura backend para um sistema que gerencia usuários, eventos e ingressos adquiridos.
O projeto teve como objetivo a realização de um teste técnico.
✅ Aprovado.
- Autenticação de usuário;
- Cadastro, remoção, edição e listagem de usuários;
- Cadastro, remoção, edição e listagem de eventos;
- Cadastro e listagem de ingressos adquiridos.
- Suporta upload das imagens dos eventos
- Fornece uma API com endpoints para todas as operações.
MySQL Server - Sistema de gerenciamento de banco de dados utilizado na persistência das informações. Laravel - Framework PHP utilizado na construção da API.
- PHP 7.4 ou superior
- Ter um banco de dados relacional
- Ter o Composer instalado na máquina
- Clone o Repositório:
- Abra o terminal ou prompt de comando e navegue até o diretório onde deseja armazenar o projeto.
- Use o comando
git clone [email protected]:JD-Rodrigues/programa_hiperlink_api.git
- Instale as dependências:
- Navegue até o diretório do projeto recém-clonado, usando o terminal.
- Execute o comando
composer install
para instalar as dependências do projeto Laravel listadas no arquivo composer.json.
- Configure o banco de dados:
- Renomeie o arquivo
.env.example
para.env
e insira nele as informações de seu banco de dados. - Execute o comando
php artisan key:generate
, para gerar uma chave criptografada para a aplicação. - Execute o comando
php artisan migrate
para criar as tabelas do banco de dados.
- Rodando a aplicação localmente:
- Você pode usar o servidor de desenvolvimento do Laravel para executar o projeto localmente. Execute o comando
php artisan serve
.
- Acessando a aplicação:
- Abra um navegador da web e acesse http://localhost:8000/api (ou o endereço configurado para o servidor, que estará aparecendo na janela do terminal em que ele foi inicializado).
A autenticação é feita via token. É necessário incluir um token no header Authorization
. O valor enviado neste header deve ser composto da palavra Bearer
seguida de espaço e o token retornado no momento do login do usuário. Ex.:
Bearer 2|x45fdsashdushduiayouioduisfiseroiserusirsicr
POST api/login
- Faz login, utilizando as seguintes informações de usuário obrigatórias enviadas via corpo da requisição (não requer autenticação):
email
: endereço de email em formato padrão
password
: string
Retorna um token de autenticação, requerido na maioria dos endpoints. É recomendado adicionar este token no header Àuthorization
logo após recebê-lo, para que ele não seja perdido.
POST api/logout
- Faz logoff na aplicação (requer autenticação).
GET api/users
- Lista todos os usuários cadastrados (requer autenticação).
GET api/users/{id}
- Exibe o usuário cujo id for passado no parâmetro da url ()
POST api/users
- Cadastra um novo usuário, com as seguintes informações obrigatórias enviadas no corpo da requisição, no formato JSON (não requer autenticação):
name
: string
email
: endereço de email em formato padrão
password
: string
authorize_location
: booleano (0 para verdadeiro ou 1 para falso)
PUT api/users/{id}
- Atualiza o usuário cujo id for passado no parâmetro da url. As informações a serem atualizadas são enviadas no corpo da requisição, a saber: name
, email
, password
e authorize_location
. O id é o único dado obrigatório nessa requisição (requer autenticação).
DELETE api/users/{id}
- Remove o usuário cujo id for passado no parâmetro da url (requer autenticação).
GET api/events
- Lista todos os eventos (requer autenticação)
GET api/events/{id}
- Exibe o evento cujo id for passado no parâmetro da url - (requer autenticação)
POST api/events
- Cadastra um novo evento, com as seguintes informações obrigatórias enviadas no corpo da requisição, no formato JSON (requer autenticação):
title
: string
image
: nome da imagem com extensão. Ex.: evento.png
start_date
: data em formato YYYY-MM-DD.
PUT api/events/{id}
- Atualiza o evento cujo id for passado no parâmetro da url. As informações a serem atualizadas são enviadas no corpo da requisição, a saber: title
, image
e start_date
. O id é o único dado obrigatório nessa requisição. Requer autenticação.
DELETE api/events/{id}
- Remove o evento cujo id for passado no parâmetro da url (requer autenticação).
GET api/tickets
- Lista todos os ingressos já adquiridos (requer autenticação).
POST api/tickets
- Cadastra um novo ingresso, com as seguintes informações obrigatórias enviadas no corpo da requisição, no formato JSON (requer autenticação):
id_user
: number
id_event
: number