Encontre um Mecânico
Membros da equipe:
- Augusto Polizer (AP)
- Brian Aikau (BA)
- Eduardo Oliveira (EO)
- Marlon Alves (MA)
- Rander Gabriel (RG)
Funcionalidades do sistema:
Sistema que conecta, em tempo real, mecânicos a motoristas que precisam de um atendimento rápido e seguro de manutenção ou reparo de veículos automotivos. O sistema terá um cadastro de mecânicos, que podem ter uma loja física e informar sua disponibilidade para deslocamento até o veículo com defeito; além de um cadastro de motoristas e informações dos seus respectivos veículos. Demais funcionalidades referem-se a pesquisar, avaliar e exibir perfil do mecânico, calcular deslocamento, tempo de chegada e confirmar solicitação de atendimento.
Tecnologia a ser utilizada:
- TypeScript, utilizando Node.js, em back-end.
- Banco de dados MySQL para armazenamento das informações.
- WebService que será responsável pelo recebimento das requisições, tratamento dos dados e disponibilização do conteúdo requisitado, em formato JSON.
- Front-end com Vue.js e Bulma.
Sprint Planning I
-
Como um motorista, eu quero cadastrar meu perfil para ter acesso ao sistema e realizar solicitações de atendimento.
1.1. Definir entidades no backend (AP)
1.2. Criar migração no banco de dados (AP)
1.3. Criar camada de acesso a dados no backend (AP)
1.4. Criar método de inserção de motorista na camada de acesso a dados (AP)
1.5. Criar controller de usuário/motorista (AP)
1.6. Criar rota POST para criação do usuário motorista (AP)
1.7. Criar tela de cadastro de motorista (AP) -
Como um motorista, eu quero acessar meu perfil usando as credenciais que defini no cadastro.
2.1. Criar método de autenticação de motorista (AP)
2.2. Ajustar modelos no backend para suportar autenticação de motorista (AP)
2.3. Criar migração no banco de dados (AP)
2.4. Criar rota POST de login para motoristas (AP)
2.5. Criar tela de login (AP) -
Como um motorista, eu quero recuperar meus dados de cadastro caso eu esqueça.
3.1. Criar rota de envio de e-mail de recuperação de senha para motoristas (EO)
3.2. Adicionar link para redefinir senha na tela de login (EO)
3.3. Criar tela de redefinir senha para o motorista (EO)
3.4. Criar template de e-mail dinamicamente (com o link para a rota de recuperação) (EO)
3.5. Criar rota GET para recuperação de senha (EO)
3.6. Criar método na camada de acesso a dados para atualização da senha do motorista (EO) -
Como um motorista, eu quero cadastrar os meus veículos para que o mecânico possa ver informações do meu veículo com defeito antes de iniciar o atendimento.
4.1. Criar modelo no backend para cadastro de veículos para motoristas (BA)
4.2. Criar entidade no banco de dados para veículos de motoristas (BA)
4.3. Criar método na camada de acesso à dados para criação de veículo de motorista (BA)
4.4. Criar rota POST para criação de veículo de motorista (BA)
4.5. Criar tela de cadastro para veículos de motorista (BA) -
Como um mecânico, eu quero cadastrar meu perfil para ter acesso ao sistema e estar apto a realizar atendimentos.
5.1. Definir entidades no Backend (RG)
5.2. Criar migração no banco de dados (RG)
5.3. Criar método de inserção de mecânico na camada de acesso a dados (RG)
5.4. Criar controller de usuário/mecânico (RG)
5.5. Criar rota POST para criação do usuário mecânico (RG)
5.6. Criar tela de cadastro de mecânico (RG) -
Como um mecânico, eu quero acessar meu perfil usando as credenciais que defini no cadastro.
6.1. Criar método de autenticação de mecânico (RG)
6.2. Ajustar modelos no backend para suportar autenticação de mecânico (RG)
6.3. Criar migração no banco de dados (RG)
6.4. Criar rota POST de login para mecânicos (RG)
6.5. Criar tela de login (RG) -
Como um mecânico, eu quero recuperar meus dados de cadastro caso eu esqueça. (EO)
7.1. Criar rota de envio de e-mail de recuperação de senha para mecânicos (EO)
7.2. Criar serviço de disparo de e-mail (EO)
7.3. Criar método de envio de e-mail no serviço de e-mail (EO)
7.4. Adicionar link para redefinir senha na tela de login (EO)
7.5. Criar tela para redefinição de senha para o mecânico (EO)
7.6. Criar template de e-mail dinamicamente com o link para a rota de recuperação (EO)
7.7. Criar rota GET para recuperação de senha que deve passar um token temporário na query string (EO)
7.8. Criar método na camada de acesso a dados para atualização da senha do mecânico (EO) -
Como um mecânico, eu quero indicar o endereço da minha oficina mecânica e minha disponibilidade para deslocamento, para que o motorista saiba se pode ou não contar com os meus serviços, dependendo da sua localização.
8.1. Criar modelos no backend para oficinas (MA)
8.2. Criar entidades no banco de dados para oficinas (MA)
8.3. Criar migração no banco de dados para oficinas (MA)
8.4. Criar método na camada de acesso à dados para criação de oficinas (MA)
8.5. Criar tela de cadastro de oficina (MA)
8.6. Criar rota POST para criação de oficinas (MA) -
Como um mecânico, eu quero cadastrar os meus veículos de trabalho, para que o motorista saiba que em qual veículo estou me deslocando para atendê-lo, quando for o caso.
9.1. Criar modelos no backend para veículos de trabalho (BA)
9.2. Criar entidades no banco de dados para veículos de trabalho (BA)
9.3. Criar migração no banco de dados para veículos de trabalho (BA)
9.4. Criar método de criação de veículos de trabalho na camada de acesso à dados (BA)
9.5. Criar rota POST para criação de veículos de trabalho (BA)
9.6. Criar tela de cadastro de veículos (BA)
Sprint Planning II
-
Como um mecânico quero visualizar as novas requisições de atendimento (Brian)
-
Como um mecânico quero aceitar uma solicitação de atendimento (Brian)
-
Como um mecânico quero entrar em contato com o motorista que precisa do atendimento após aceitar a solicitação (Augusto)
-
Como um mecânico quero encerrar um atendimento (Augusto)
-
Como um mecânico quero visualizar meu histórico de atendimentos (Eduardo)
-
Como um motorista quero realizar uma solicitação de atendimento (Rander)
-
Como um motorista quero aceitar ou rejeitar um atendimento (Rander)
-
Como um motorista quero entrar em contato com o mecânico (Marlon)
-
Como um motorista quero pesquisar por um mecânico (Marlon)
-
Como um motorista quero avaliar um atendimento (Eduardo)
Sprint Planning III
Estórias do usuário
-
Como um motorista, quero cadastrar o endereço da minha solicitação.
-
Como um motorista, quero que o mecânico veja minhas informações de contato somente após ambas as partes aceitarem o atendimento.
-
Como um mecânico, quero que o motorista veja minhas informações de contato somente após ambas as partes aceitarem o atendimento.
-
Como um mecânico, quero ver meu perfil no sistema.
Outras Tarefas
-
Corrigir erros no websocket (Mecanico aceita a solicitação, mas não atualiza para o motorista)
-
Melhorar interação com os mapas
-
Terminar o sistema de avaliação. (texto + nota)
-
Colocar timeouts nas interações entre motoristas e mecânicos
-
Criar validação do Cadastro e Login
-
Mostrar estatísticas de atendimentos quando não tiver solicitações no mecânicos
-
Otimizar a navbar
-
Otimizar front-end
-
Criar global state para a aplicação
-
Criar filtros para não exibir todas as solicitações para todos os mecânicos