https://github.com/melgacoc/onfly_teste
Gerenciador de despesas
https://github.com/melgacoc/onfly_teste
docker laravel mysql php postman
Last synced: 3 months ago
JSON representation
Gerenciador de despesas
- Host: GitHub
- URL: https://github.com/melgacoc/onfly_teste
- Owner: melgacoc
- Created: 2024-11-01T20:53:15.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-04T14:03:01.000Z (over 1 year ago)
- Last Synced: 2025-01-21T03:42:46.996Z (about 1 year ago)
- Topics: docker, laravel, mysql, php, postman
- Language: PHP
- Homepage:
- Size: 106 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Teste Onfly Backend
Este é o CRUD para o teste técnico da Onfly construído com PHP, Laravel, MySQL e PHPUnit. A API gerência autenticação de usuários e gerenciamento de despesas;
## Funcionalidades
- **Autenticação de Usuários**: Registre e autentique usuários com senhas criptografadas.
- **Gerenciamento de Despesas**: Cadastre uma nova despesa e receba um email relatando o cadastro.
## Tecnologias





## Primeiros Passos
### Pré-requisitos
- PHP (v8.2 ou superior)
- Composer
- Docker
- Docker composer (Opcional)
- Postman
### Instalação
1. Clone o repositório:
```bash
git@github.com:melgacoc/onfly_teste.git
cd onfly_teste
```
2. Instale as dependências:
```bash
composer install
```
3. Rode as migrations:
```bash
php artisan migrate
```
4. Instale as dependências:
```bash
php artisan passport:install
```
5. Configure as variáveis de ambiente com o env example. Rode o comando para gerar chave aleatoria de criptografia
```bash
php artisan key:generate
```
6. Suba o banco de dados
```bash
docker run -d
--name mysql-container
-e MYSQL_DATABASE=teste_onfly_claudio
-e MYSQL_USER=root
-e MYSQL_PASSWORD=
-e MYSQL_ROOT_PASSWORD=root_password
-p 3306:3306
mysql:5.7
```
7. Inicie o servidor
```bash
php artisan serve
```
O projeto possui um docker composer. Se preferir pode executa-lo. Após abra o bash do container da aplicação e rode os comandos.
### Operações
Consulte a collection do Postman presente na raiz do projeto.
Construído usando o modelo de API Restfull possíu as seguintes operações:
## User
### Login
Utilizando a rota /api/login e passando um body do tipo:
{
"email": string,
"senha": string
}
Receberá um retorno contando um sucesso ou falha em caso de credenciais incorretas. No caso de sucesso um token será retornado que servirá como autenticador para as requisições de Expanses
### Criar novo usuário
Utilizando a rota /api/newUser e passando um body do tipo:
{
"nome": string [Campo não pode ser do tipo vazio],
"email": string [Campo não pode ser do tipo vazio e estring precisa seguir o modelo email contendo "@email.com"],
"senha": string [Campo não pode ser do tipo vazio e precisa ter mais que 7 caracteres]
}
Receberá um retorno contando um sucesso ou falha em caso de credenciais incorretas. No caso de sucesso um token será retornado que servirá como autenticador para as requisições de Expanses
## Expanses
### Vizualizar despesas cadastradas
Ao fazer um get na rota /api/expenses uma lista de despesas será retornada, se houver alguma cadastrada, que estiver relacionada ao usuário associado ao token passado em Authorization.
### Cadastrar uma nova despesa
Ao fazer um post na rota /api/expenses passando o seguinte body:
{
"description": string [Campo não pode ser vazio e maior que 191 caracteres],
"amount": number [Campo não pode ser vazio e negativo],
"date": date (YYYY/MM/DD) [Campo não pode ser vazio e ter uma data futura à criação da despesa]
}
A rota cadastra o user_id na tabela pelo id do usuário associado ao token passado para a requisição.
### Deletar uma despesa
Ao fazer um delete na rota /api/expenses/{id_expense} a despesa será excluída, se existir. Somente o usuário relacionado ao user_id da despesa poderá excluí-la