caronae / caronae-backend

[Projeto descontinuado] Backend do Caronaê, app open-source de caronas usado por mais de 15 mil alunos da UFRJ
https://caronae.org
GNU General Public License v3.0
38 stars 16 forks source link
carona caronae laravel php ridesharing

Caronaê - Backend

CircleCI StyleCI

Backend do Caronaê, baseado no Laravel. O backend é composto por uma API REST usada pelos apps e pela área administrativa, usada internamente.

O Caronaê é um sistema de código aberto, seguro e prático de caronas compartilhadas, criado com o objetivo de ser replicado em diferentes instituições e feito exclusivamente para a comunidade acadêmica das instituições integrantes da Rede Caronaê. Para conhecer mais sobre o projeto, visite nosso site.

Instalação

O backend do Caronaê executa em um ambiente com PHP 7, PostgreSQL e Redis.

O jeito mais fácil de executar este projeto localmente é utilizando nossas imagens Docker. Você não precisa ter nada instalado na sua máquina além do Docker e Docker Compose.

No diretório docker há uma configuração do Docker Compose. Para rodar o projeto junto com todas as dependências necessárias, execute:

cd docker
docker-compose up

Você pode criar uma terminal dentro do container do caronae-backend através do comando abaixo:

docker exec -it caronae-backend sh

Populando o banco de dados

Quando você executa o projeto pela primeira vez, o banco de dados está vazio. Porém há um seed que popula um banco de dados com dados aleatórios, perfeito para desenvolvimento local. Para usá-lo, execute o comando abaixo:

Importante: o comando abaixo apaga todos os dados existentes antes de inserir os novos dados.

docker exec -it caronae-backend php artisan migrate:refresh --seed

Pronto! Agora você já pode fazer login na área administrativa utilizando o usuário padrão.

Usando a API através do Postman

Nós recomendamos usar o aplicativo Postman pra testar as chamadas da API.

Como as rotas da API são protegidas apenas para usuários logados, você precisa gerar um token JWT pra se autenticar na API. Você pode gerar um token pela área administrativa clicando em API tokens.

Uma vez gerado o token, você pode configurá-lo na aba Authorization do Postman. No campo Type, selecione 'Bearer Token'. No campo Token, insira o token gerado na área administrativa.

Testes

Este projeto possui alguns testes unitários e de integração, que ficam dentro da pasta tests. Eles verificam o comportamento da aplicação a fim de evitar que mudanças no código quebrem alguma funcionalidade existente. Para ler mais sobre testes no Laravel, consulte a documentação oficial.

Existe um arquivo de configuração do Docker Compose feito só pra poder rodar os testes. Você pode executá-lo da sua máquina usando o comando abaixo de dentro da pasta docker:

docker-compose -f docker-compose.test.yml up --build --exit-code-from caronae-backend-tests