All Projects → caronae → caronae-backend

caronae / caronae-backend

Licence: GPL-3.0 license
[Projeto descontinuado] Backend do Caronaê, app open-source de caronas usado por mais de 15 mil alunos da UFRJ

Programming Languages

PHP
23972 projects - #3 most used programming language
javascript
184084 projects - #8 most used programming language
HTML
75241 projects
CSS
56736 projects
shell
77523 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to caronae-backend

caronae-ios
Aplicativo do Caronaê para iOS
Stars: ✭ 18 (-51.35%)
Mutual labels:  ridesharing, carona, caronae
erkab-web-app
Erkab - A student centric ride sharing website.
Stars: ✭ 21 (-43.24%)
Mutual labels:  ridesharing
Libretaxi
Open source Uber #deleteuber
Stars: ✭ 3,687 (+9864.86%)
Mutual labels:  ridesharing
skjutsgruppen-reactnative
React native app for Skjutsgruppen http://www.skjutsgruppen.nu/
Stars: ✭ 21 (-43.24%)
Mutual labels:  ridesharing
Uber
iOS Ride-Sharing App written in Swift 4 Using Map Kit and Core Data
Stars: ✭ 30 (-18.92%)
Mutual labels:  ridesharing
simobility
simobility - light-weight mobility simulation framework. Best for quick prototyping
Stars: ✭ 29 (-21.62%)
Mutual labels:  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
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].