Crie dois Aplicativos que serão usados Táxi
Budget: $250 – $750 USD
= SPEC-001: Kwenda - Aplicativo de Táxi Personalizado
:sectnums:
:toc:
== Background
O aplicativo "Kwenda" foi idealizado para oferecer um serviço de táxi personalizado em Angola, focado em motoristas profissionais e empresas que desejam otimizar a captação de corridas e entregas. Além da funcionalidade padrão de transporte, o aplicativo se destaca por permitir a chamada de motos e carros, integrar um painel de administração para aprovação de motoristas e oferecer um sistema avançado de rastreamento e análise de demanda.
== Requisitos
Os requisitos foram organizados de acordo com a metodologia MoSCoW:
Must Have (Obrigatório):
Cadastro e autenticação segura de motoristas com aprovação via código OTP.
Aplicativo para motoristas com interface para aceitar e visualizar corridas.
Integração com mapas para localização de passageiros e pontos de coleta.
Contador de corridas realizadas.
Suporte a chamadas de carro e moto.
Comunicação entre motorista e passageiro via chat e chamadas.
Aplicativo de gestão para administradores aprovar motoristas e gerar códigos OTP.
Pagamento via transferência bancária e dinheiro.
Área de perguntas e suporte ao motorista.
Monitoramento de corridas em tempo real.
Mapa interativo mostrando regiões com maior volume de pedidos.
Sistema de Chamadas Inteligentes – Motoristas podem ser chamados automaticamente com base na proximidade e histórico de aceitação de corridas.
Should Have (Desejável):
Indicação de áreas de alta demanda.
Integração com Google Maps API para exibição de trajetos otimizados.
Opção para motoristas oferecerem serviços de entrega além do transporte de passageiros.
Botão de Pânico – Para segurança, motoristas e passageiros podem acionar um alerta emergencial.
Integração com Assistentes Virtuais – Como Google Assistant e Siri para comandos de voz.
Could Have (Opcional):
Sugestão de preços dinâmicos baseados na demanda da região.
Integração com sistemas de pagamento digital adicionais.
Modo Carona Compartilhada – Passageiros podem dividir a corrida e custos com outros usuários.
== Melhorias e Funcionalidades Extras
Sistema de Preços Dinâmicos – Ajuste automático do valor das corridas com base na demanda e tráfego.
Histórico Detalhado de Corridas – Permitir que motoristas e passageiros revisem corridas passadas.
Recompensas para Motoristas – Bonificações para motoristas mais bem avaliados ou mais ativos.
Sistema de Indicação – Passageiros e motoristas ganham bônus ao convidar novos usuários.
Suporte via IA – Chatbot para atendimento imediato a dúvidas e problemas.
Modo Noturno – Interface adaptável para uso confortável em horários noturnos.
Relatórios de Desempenho – Para motoristas e administradores analisarem ganhos e produtividade.
Sistema de Recomendação – Sugestões automáticas de melhores horários e locais para conseguir corridas.
== Testes Automatizados
Para garantir a qualidade e estabilidade do aplicativo, serão implementados testes automatizados:
Testes Unitários (Jest, Mocha):
Testar funções individuais do backend.
Garantir o funcionamento correto da lógica de negócios.
Testes de Integração (Supertest, Chai):
Validar a comunicação entre os serviços da API e banco de dados.
Testar endpoints REST para verificar o fluxo correto de dados.
Testes de Interface (Appium, Detox):
Simular interações dos usuários no aplicativo móvel.
Garantir que botões, formulários e telas estejam funcionando corretamente.
Testes de Carga e Performance (K6, JMeter):
Avaliar o desempenho do servidor sob alta demanda.
Identificar gargalos e otimizar respostas da API.
Testes de Segurança (OWASP ZAP, SonarQube):
Verificar vulnerabilidades na autenticação e na comunicação dos dados.
Proteger contra ataques de injeção SQL e XSS.
== Diagramas de Arquitetura
=== Diagrama de Componentes
@startuml
package "Aplicação Kwenda" {
[App Motorista] --> [API Backend]
[App Passageiro] --> [API Backend]
[Painel Gestão] --> [API Backend]
[API Backend] --> [Banco de Dados]
}
@enduml
=== Diagrama de Sequência
@startuml
actor Passageiro
participant "App Passageiro" as AP
participant "API Backend" as API
participant "App Motorista" as AM
Passageiro -> AP: Solicita corrida
AP -> API: Envia requisição de nova corrida
API -> AM: Notifica motorista disponível
AM -> API: Aceita corrida
API -> AP: Confirma motorista atribuído
@enduml
=== Diagrama de Implantação
@startuml
node "Servidor Backend" {
[API Backend]
database "MongoDB"
}
node "Aplicativos" {
[App Motorista]
[App Passageiro]
}
node "Painel Web" {
[Painel Gestão]
}
API Backend --> MongoDB
App Motorista --> API Backend
App Passageiro --> API Backend
Painel Gestão --> API Backend
@enduml
=== Diagrama de Fluxo de Chamadas Inteligentes
@startuml
participant "API Backend" as API
participant "Algoritmo de Match" as Match
participant "App Motorista" as AM
API -> Match: Buscar motorista mais próximo
Match -> AM: Notifica motorista selecionado
AM -> Match: Aceita ou recusa corrida
Match -> API: Retorna status
@enduml
=== Diagrama de Segurança e Emergência
@startuml
actor Motorista
participant "App Motorista" as AM
participant "API Backend" as API
participant "Central de Segurança" as CS
Motorista -> AM: Pressiona Botão de Pânico
AM -> API: Envia alerta de emergência
API -> CS: Notifica equipe de segurança
CS -> API: Envia resposta e assistência
@enduml
:sectnums:
:toc:
== Background
O aplicativo "Kwenda" foi idealizado para oferecer um serviço de táxi personalizado em Angola, focado em motoristas profissionais e empresas que desejam otimizar a captação de corridas e entregas. Além da funcionalidade padrão de transporte, o aplicativo se destaca por permitir a chamada de motos e carros, integrar um painel de administração para aprovação de motoristas e oferecer um sistema avançado de rastreamento e análise de demanda.
== Requisitos
Os requisitos foram organizados de acordo com a metodologia MoSCoW:
Must Have (Obrigatório):
Cadastro e autenticação segura de motoristas com aprovação via código OTP.
Aplicativo para motoristas com interface para aceitar e visualizar corridas.
Integração com mapas para localização de passageiros e pontos de coleta.
Contador de corridas realizadas.
Suporte a chamadas de carro e moto.
Comunicação entre motorista e passageiro via chat e chamadas.
Aplicativo de gestão para administradores aprovar motoristas e gerar códigos OTP.
Pagamento via transferência bancária e dinheiro.
Área de perguntas e suporte ao motorista.
Monitoramento de corridas em tempo real.
Mapa interativo mostrando regiões com maior volume de pedidos.
Sistema de Chamadas Inteligentes – Motoristas podem ser chamados automaticamente com base na proximidade e histórico de aceitação de corridas.
Should Have (Desejável):
Indicação de áreas de alta demanda.
Integração com Google Maps API para exibição de trajetos otimizados.
Opção para motoristas oferecerem serviços de entrega além do transporte de passageiros.
Botão de Pânico – Para segurança, motoristas e passageiros podem acionar um alerta emergencial.
Integração com Assistentes Virtuais – Como Google Assistant e Siri para comandos de voz.
Could Have (Opcional):
Sugestão de preços dinâmicos baseados na demanda da região.
Integração com sistemas de pagamento digital adicionais.
Modo Carona Compartilhada – Passageiros podem dividir a corrida e custos com outros usuários.
== Melhorias e Funcionalidades Extras
Sistema de Preços Dinâmicos – Ajuste automático do valor das corridas com base na demanda e tráfego.
Histórico Detalhado de Corridas – Permitir que motoristas e passageiros revisem corridas passadas.
Recompensas para Motoristas – Bonificações para motoristas mais bem avaliados ou mais ativos.
Sistema de Indicação – Passageiros e motoristas ganham bônus ao convidar novos usuários.
Suporte via IA – Chatbot para atendimento imediato a dúvidas e problemas.
Modo Noturno – Interface adaptável para uso confortável em horários noturnos.
Relatórios de Desempenho – Para motoristas e administradores analisarem ganhos e produtividade.
Sistema de Recomendação – Sugestões automáticas de melhores horários e locais para conseguir corridas.
== Testes Automatizados
Para garantir a qualidade e estabilidade do aplicativo, serão implementados testes automatizados:
Testes Unitários (Jest, Mocha):
Testar funções individuais do backend.
Garantir o funcionamento correto da lógica de negócios.
Testes de Integração (Supertest, Chai):
Validar a comunicação entre os serviços da API e banco de dados.
Testar endpoints REST para verificar o fluxo correto de dados.
Testes de Interface (Appium, Detox):
Simular interações dos usuários no aplicativo móvel.
Garantir que botões, formulários e telas estejam funcionando corretamente.
Testes de Carga e Performance (K6, JMeter):
Avaliar o desempenho do servidor sob alta demanda.
Identificar gargalos e otimizar respostas da API.
Testes de Segurança (OWASP ZAP, SonarQube):
Verificar vulnerabilidades na autenticação e na comunicação dos dados.
Proteger contra ataques de injeção SQL e XSS.
== Diagramas de Arquitetura
=== Diagrama de Componentes
@startuml
package "Aplicação Kwenda" {
[App Motorista] --> [API Backend]
[App Passageiro] --> [API Backend]
[Painel Gestão] --> [API Backend]
[API Backend] --> [Banco de Dados]
}
@enduml
=== Diagrama de Sequência
@startuml
actor Passageiro
participant "App Passageiro" as AP
participant "API Backend" as API
participant "App Motorista" as AM
Passageiro -> AP: Solicita corrida
AP -> API: Envia requisição de nova corrida
API -> AM: Notifica motorista disponível
AM -> API: Aceita corrida
API -> AP: Confirma motorista atribuído
@enduml
=== Diagrama de Implantação
@startuml
node "Servidor Backend" {
[API Backend]
database "MongoDB"
}
node "Aplicativos" {
[App Motorista]
[App Passageiro]
}
node "Painel Web" {
[Painel Gestão]
}
API Backend --> MongoDB
App Motorista --> API Backend
App Passageiro --> API Backend
Painel Gestão --> API Backend
@enduml
=== Diagrama de Fluxo de Chamadas Inteligentes
@startuml
participant "API Backend" as API
participant "Algoritmo de Match" as Match
participant "App Motorista" as AM
API -> Match: Buscar motorista mais próximo
Match -> AM: Notifica motorista selecionado
AM -> Match: Aceita ou recusa corrida
Match -> API: Retorna status
@enduml
=== Diagrama de Segurança e Emergência
@startuml
actor Motorista
participant "App Motorista" as AM
participant "API Backend" as API
participant "Central de Segurança" as CS
Motorista -> AM: Pressiona Botão de Pânico
AM -> API: Envia alerta de emergência
API -> CS: Notifica equipe de segurança
CS -> API: Envia resposta e assistência
@enduml
Related categories:
Website Design
Data Processing
Mobile App Development
Article Writing
Software Development