/busu

Uma solução de transporte para locomoção intermunicipais.

Primary LanguageJavaScriptMIT LicenseMIT


🚍 Busu

📚 Sobre o Projeto

O Busu é uma solução de transporte intermunicipal que atende bairros mais afastados do centro. Nosso principal objetivo é levar um veículo de oportunidades com um valor justo para todxs em suas locomoções diárias. O usuário contará com a aplicação para ver rotas, horários, detalhes do carro e também reservar seu ticket de embarque. Queremos mudar a realidade de milhares de famílias que não têm transporte digno e acessível em seus bairros/comunidades.

🚀 Tecnologias Utilizadas

📁 Arquitetura MVC

 📁 busu
   |
   |-  📁 src
   |    |
   |    |- 📁 auth
   |         |- 📄 auth.js
   |
   |    |- 📁 config
   |         |- 📄 database.js
   |
   |    |- 📁 controller
   |         |- 📄 ticketController.js
   |         |- 📄 userController.js
   |	     |- 📄 viagemController.js
   |
   |     |- 📁 database
   |         |- 📄 busuDatabase.js
   |
   |    |- 📁 model
   |         |- 📄 ticketModel.js
   |         |- 📄 userModel.js
   |	     |- 📄 viagemModel.js
   |
   |    |- 📁 routes
   |         |- 📄 index.js
   |         |- 📄 ticketRoutes.js 
   |         |- 📄 userRoutes.js 
   |         |- 📄 viagemRoutes.js 
   |
   |
   |- 📄 .env
   |- 📄 .env.example
   |- 📄 .gitignore
   |- 📄 LICENSE
   |- 📄 package
   |- 📄 Procfile
   |- 📄 server.js

📌 Rotas

Método Rota Descrição
GET /busu Página de boas vindas
POST /user/signup Página para criar cadastro
POST /user/signin Página para fazer login com autenticação
GET /viagem/all Retorna todas as viagens.
GET /viagem/:id Retorna viagens filtradas por id.
POST /ticket/create Gera o ticket de embarque.
PUT /ticket/update/:id Encontra o ticket a partir de um parâmetro e edita dado.
DELETE /ticket/remove/:id Deleta um dado a partir de um parâmetro.

📑 Estrutura dos dados


//corpo do usuário para fazer o cadastro

{
    "nome": "Angela Davis",
    "email": "angeladavis@gmail.com",
    "senha": "poderaopovo"
}
//corpo para o usuário fazer login

{
    "email": "angeladavis@gmail.com",
    "senha": "poderaopovo"
}

//JSON da viagem

{
        "destino": "Ipatinga",
        "placa_do_carro": "GMOFS08",
        "cor_do_carro": "cinza",
        "horario": "17h00",
        "locais_para_embarque": [
            "Avenida João Valentim Pascoal, 955",
            "Câmara Municipal De Ipatinga",
            "Avenida João Valentim Pascoal, 829",
            "Avenida João Valentim Pascoal, 637",
            "Terminal Rodoviário De Ipatinga",
            "Avenida João Valentim Pascoal, 255",
            "Avenida João Valentim Pascoal, 135",
            "Avenida Cláudio Moura - Acesso Ao Bairro Castelo"
        ],
        "locais_para_desembarque": [
            "Altivo Machado dos Reis, 505",
            "Rua Altivo Machado dos Reis, 299",
            "Rua Pouso Alegrem, 451",
            "Rua Benedito José de Souza, 168",
            "Rua Olivia Rodrigues Viera, 268",
            "Rua dos esportes, 51, em frente ao campo de futebol",
            "Rua Itabira, 443 (av dois)",
            "Praça Padre Jose Lanzilotd, 102 Ipaba"
        ],
        "tempo_estimado_da_viagem": "25min",
        "nome_do_motorista": "Guilherme Benedito",
        "preco_da_passagem": "R$3,80"

}
//corpo da requisição para gerar o ticket de embarque

    {
        "nome": "Angela Davis",
        "data_da_viagem": "2020-01-21T03:00:00.000Z",
        "viagemId": "5fd2808063dba433a474ae35"
    }

// ticket de embarque

{

    "message": "Ticket gerado com sucesso! ",
    "response": {
        "id": "5fd42131cdf85b23b4884b89",
        "nome": "Angela Davis",
        "data_da_viagem": "2020-12-12T00:00:00.000Z",
        "destino": "Ipaba",
        "horario": "7h05",
        "placa_do_carro": "BAE4T25",
        "locais_para_embarque": [
            "Avenida João Valentim Pascoal, 955",
            "Câmara Municipal De Ipatinga",
            "Avenida João Valentim Pascoal, 829",
            "Avenida João Valentim Pascoal, 637",
            "Terminal Rodoviário De Ipatinga",
            "Avenida João Valentim Pascoal, 255",
            "Avenida João Valentim Pascoal, 135",
            "Avenida Cláudio Moura - Acesso Ao Bairro Castelo"
        ],
        "locais_para_desembarque": [
            "Altivo Machado dos Reis, 505",
            "Rua Altivo Machado dos Reis, 299",
            "Rua Pouso Alegrem, 451",
            "Rua Benedito José de Souza, 168",
            "Rua Olivia Rodrigues Viera, 268",
            "Rua dos esportes, 51, em frente ao campo de futebol",
            "Rua Itabira, 443 (av dois)",
            "Praça Padre Jose Lanzilotd, 102 Ipaba"
        ]
    
}

💻 Teste o Busu em uma maquina virtual

Acesse o link https://app-busu.herokuapp.com/busu

🚀 Próximos passos

A vontade de dar vida ao Busu é real e necessária, por isso, ele ainda tem muito o que desenvolver em suas próximas versões.

  • Contar quantidade de assentos disponíveis na viagem;
  • QR code para ticket único;
  • Acesso do administrador;
  • Controle de acesso;
  • Implementar meios de pagamento pelo app;
  • Acompanhar rota em tempo real;

📝 Licença

Esse projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.

Aplicação desenvolvida como projeto final do bootcamp de backend da {reprograma}.