Este projeto tem como objetivo criar um modelo simplificado do sistema de gerenciamento de viagens, similar ao Uber, utilizando os princípios de Orientação a Objetos (OO). A aplicação gerencia dados de usuários, motoristas e viagens, permitindo o cadastro, listagem e busca de informações relacionadas.
O projeto é composto por três principais entidades:
- Usuário
- Motorista
- Viagem
Essas entidades são gerenciadas pela classe Dados
, que contém listas de usuários, motoristas e viagens, além de métodos para manipulação desses dados.
A classe Dados
é responsável por armazenar e gerenciar as listas de usuários, motoristas e viagens. Abaixo estão os principais métodos e suas descrições:
-
Construtor
public Dados()
: Inicializa as listas e preenche com dados de exemplo através do métodopreencherDados()
.
-
Getters e Setters
public ArrayList<Usuario> getListaUsuario()
public void setListaUsuario(ArrayList<Usuario> listaUsuario)
public ArrayList<Motorista> getListaMotorista()
public void setListaMotorista(ArrayList<Motorista> listaMotorista)
-
Métodos de Cadastro
public void cadastrarUsuario(Usuario usuario)
: Adiciona um usuário à lista de usuários.public void cadastrarMotorista(Motorista motorista)
: Adiciona um motorista à lista de motoristas.public void cadastrarViagem(Viagem viagem)
: Adiciona uma viagem à lista de viagens.
-
Métodos de Adição
public void adicionarViagensMotoristas(ArrayList<Motorista> motoristas)
: Adiciona todas as viagens dos motoristas à lista central de viagens.public void adicionarViagensUsuarios(ArrayList<Usuario> usuarios)
: Adiciona todas as viagens dos usuários à lista central de viagens.
-
Métodos de Listagem
public void listarUsuarios()
: Exibe a lista de usuários.public void listarMotoristas()
: Exibe a lista de motoristas.public void listarViagens()
: Exibe a lista de viagens.
-
Métodos de Busca
public Usuario buscarUsuarioPorNome(String nomeUsuario)
: Busca um usuário pelo nome.public Usuario buscarUsuarioPorEmail(String email)
: Busca um usuário pelo email.public Motorista buscarMotoristaPorNome(String nome)
: Busca um motorista pelo nome.public Motorista buscarMotoristaPorPlaca(String placa)
: Busca um motorista pela placa.public Viagem buscarViagemPorId(String id)
: Busca uma viagem pelo ID.public Viagem buscarViagemPorData(String data)
: Busca uma viagem pela data.
-
Método de Preenchimento de Dados
public void preencherDados()
: Preenche as listas com dados de exemplo.
Representa os usuários do sistema. Possui atributos como nome, telefone, email e senha. Além disso, métodos para manipulação e recuperação desses dados.
Representa os motoristas do sistema. Além dos atributos básicos de um usuário, possui informações adicionais como modelo, placa, cor do carro e bairro.
Representa as viagens no sistema. Possui atributos como origem, destino, horário, data, valor e ID.
-
Clonar o repositório:
git clone <url-do-repositorio> cd <nome-do-repositorio>
-
Compilar e executar o projeto:
- Utilize uma IDE como IntelliJ IDEA ou Eclipse.
- Importe o projeto como um projeto Java.
- Compile e execute o arquivo principal.
-
Cadastro de Usuários e Motoristas:
dados.cadastrarUsuario(new Usuario("nome", "telefone", "email", "senha")); dados.cadastrarMotorista(new Motorista("nome", "telefone", "email", "senha", "modelo", "placa", "cor", "bairro"));
-
Listagem de Usuários, Motoristas e Viagens:
dados.listarUsuarios(); dados.listarMotoristas(); dados.listarViagens();
-
Busca de Usuários, Motoristas e Viagens:
Usuario usuario = dados.buscarUsuarioPorNome("nome"); Motorista motorista = dados.buscarMotoristaPorNome("nome"); Viagem viagem = dados.buscarViagemPorId("id");
-
Adicionar Viagens:
dados.cadastrarViagem(new Viagem("origem", "destino", "horario", "data", 100.0, "id"));
Para contribuir com o projeto, siga os passos abaixo:
- Fork o repositório
- Crie uma nova branch para sua feature:
git checkout -b minha-feature
- Commit suas mudanças:
git commit -m "Descrição das minhas mudanças"
- Push para a branch:
git push origin minha-feature
- Abra um Pull Request
Para mais informações, entre em contato com Mateus através do email [email protected].