lucasramallo / hopin Goto Github PK
View Code? Open in Web Editor NEWProjeto pessoal desenvolvido em Spring Boot para replicar funcionalidades básicas do Uber para fins de estudo.
Projeto pessoal desenvolvido em Spring Boot para replicar funcionalidades básicas do Uber para fins de estudo.
Os usuários têm a capacidade de visualizar e editar informações pessoais, além de acessar seu histórico de corridas. Essas funcionalidades permitem uma experiência personalizada e a gestão das informações relevantes para cada usuário.
Os motoristas têm funcionalidades adicionais em comparação com os usuários. Além de visualizar e editar suas próprias informações pessoais e histórico de corridas, eles também podem gerenciar seu status de disponibilidade para aceitar solicitações de corrida.
Essas funcionalidades são essenciais para oferecer uma experiência de usuário completa tanto para os passageiros quanto para os motoristas, garantindo que eles possam gerenciar suas informações e interações com o sistema de forma eficaz.
Implementar integração com o S2 da AWS para upload de fotos de perfil dos customers e drivers
Usuários podem solicitar corridas especificando o ponto de partida e destino. Esta funcionalidade permite que um usuário inicie uma solicitação de corrida fornecendo os detalhes necessários para encontrar um motorista disponível e iniciar a corrida.
A solicitação deve ser feita via uma chamada POST para o endpoint /api/rides/request
.
O corpo da requisição deve ser enviado no formato JSON e deve incluir os seguintes campos:
userId
: ID do usuário que está solicitando a corrida.pickupLocation
: Objeto contendo as informações do ponto de partida.
latitude
: Latitude do ponto de partida.longitude
: Longitude do ponto de partida.address
: (Opcional) Endereço do ponto de partida.dropoffLocation
: Objeto contendo as informações do destino.
latitude
: Latitude do destino.longitude
: Longitude do destino.address
: (Opcional) Endereço do destino.Exemplo de JSON de requisição:
{
"userId": "12345",
"pickupLocation": {
"latitude": -23.561414,
"longitude": -46.656540,
"address": "Av. Paulista, 1000, São Paulo, SP"
},
"dropoffLocation": {
"latitude": -23.550520,
"longitude": -46.633309,
"address": "Praça da Sé, São Paulo, SP"
}
}
A resposta será um JSON contendo os detalhes da solicitação de corrida, incluindo o status da solicitação e, se disponível, os detalhes do motorista e do veículo que atenderão à solicitação.
A resposta bem-sucedida incluirá os seguintes campos:
rideId
: ID da corrida criada.status
: Status da solicitação da corrida (ex: pending
, accepted
, rejected
).driver
: (Opcional) Objeto contendo informações sobre o motorista.
driverId
: ID do motorista.name
: Nome do motorista.rating
: Avaliação do motorista.vehicle
: Objeto contendo informações sobre o veículo.
make
: Marca do veículo.model
: Modelo do veículo.plateNumber
: Placa do veículo.estimatedPickupTime
: Estimativa de tempo para o motorista chegar ao ponto de partida.estimatedFare
: Estimativa do valor da corrida.Exemplo de JSON de resposta:
{
"rideId": "67890",
"status": "pending",
"driver": {
"driverId": "54321",
"name": "João Silva",
"rating": 4.8,
"vehicle": {
"make": "Toyota",
"model": "Corolla",
"plateNumber": "ABC-1234"
}
},
"estimatedPickupTime": "2024-06-20T14:30:00Z",
"estimatedFare": 35.50
}
A API pode retornar os seguintes códigos de erro:
400 Bad Request
: Se algum campo obrigatório estiver ausente ou se os valores forem inválidos.401 Unauthorized
: Se o usuário não estiver autenticado.500 Internal Server Error
: Se ocorrer um erro inesperado no servidor.{
"error": "Bad Request",
"message": "pickupLocation.latitude is required"
}
pending
até que um motorista aceite a corrida.A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.