Objetivo | Visão do produto | Cronograma | Backlog/Entregas | Requisitos | Tecnologias | Como usar | Equipe
O objetivo do ExpenseFlow é desenvolver uma aplicação móvel intuitiva e de fácil utilização, permitindo que os usuários realizem requisições de maneira simples e prática. A aplicação visa proporcionar uma experiência fluida e eficiente, facilitando o gerenciamento de despesas. O projeto foi produzido utilizando a metodologia ágil Scrum, garantindo entregas rápidas, iterativas e alinhadas às necessidades do cliente, promovendo um ciclo contínuo de melhorias e adaptações.
A visão do ExpenseFlow é ser uma solução móvel para a gestão e requisição de reembolsos corporativos, oferecendo uma plataforma responsiva, intuitiva e de fácil uso. O objetivo é simplificar o processo de solicitação e aprovação de reembolsos, proporcionando uma experiência ágil e eficiente tanto para os usuários quanto para as empresas, aumentando a produtividade e garantindo maior controle e transparência nas finanças corporativas.
| FASE | INÍCIO | FIM |
|---|---|---|
| Kick-off | 24/02/2025 | 28/02/2025 |
| Sprint 1 | 10/03/2025 | 30/03/2025 |
| Planning | 31/03/2025 | 04/04/2025 |
| Sprint 2 | 07/04/2025 | 27/04/2025 |
| Planning | 28/04/2025 | 02/05/2025 |
| Sprint 3 | 05/05/2025 | 25/05/2025 |
| Review | 26/05/2025 | 28/05/2025 |
Product Backlog
| Rank | Prioridade | User Story | Estimativa | Sprint | Critério de aceitação |
|---|---|---|---|---|---|
| 1 | ALTA | "Como usuário, quero fazer login na aplicação, para que possa acessar minhas informações e funcionalidades." | 2 | 1 | "Tela com Campos para acesso a aplicação com E-mail e senha para acesso; Validar as credenciais e permitir acesso à aplicação se forem corretas; Redirecionamento para Tela Principal ao logar com sucesso" |
| 2 | ALTA | "Como usuário, quero selecionar o tipo de reembolso que estou solicitando, para que possa categorizar corretamente minha despesa." | 2 | 1 | "Usuário deve ser capaz de selecionar o tipo de reembolso de uma lista de tipos disponíveis; O tipo de reembolso solictiado deve aparecer na tela" |
| 3 | ALTA | "Como usuário, quero informar o valor do reembolso, para que possa registrar minha solicitação de forma precisa." | 1 | 1 | "O campo do valor do reembolso só pode aceita números ; O valor deve ser validado para certificar que é positivo e dentro do limite especificado" |
| 4 | ALTA | "Como usuário, quero enviar uma foto do comprovante armazenada na minha galeria, para que possa anexá-la ao meu pedido de reembolso." | 3 | 1 | "Usuário deve ser capaz de acessar sua galeria de fotos/arquivos do dispositivo; Usuário deve poder selecionar uma foto/pdf para anexo; A foto/pdf deve ser exibido na tela antes do envio" |
| 5 | ALTA | "Como usuário, quero ver uma lista dos meus pedidos de reembolso, para que possa acompanhar minhas solicitações." | 1 | 1 | "Tela com uma lista de pedidos de reembolso do usuário; A lista deve conter informações basicas do pedido" |
| 6 | ALTA | "Como usuário, quero receber um alerta ao tentar solicitar um reembolso acima do limite permitido, para que eu possa justificar o valor." | 1 | 1 | "Um alerta deve aparecer na tela do usuário caso ele ultrapasse o limite; O alerta deve fornecer informações de como justificar a ultrapassagem do limite" |
| 7 | ALTA | "Como sistema, quero salvar a data, o valor e o tipo do reembolso, para que possa processar corretamente as solicitações dos usuários." | 2 | 1 | "Armazenar a data da solicitação, o valor e o tipo de reembolso corretamente no banco de dados; Essas informações devem ser acessiveis através de um endpoint na API" |
| 8 | ALTA | "Como usuário, quero adicionar uma descrição detalhada à minha despesa, para que possa justificar a solicitação de reembolso." | 1 | 1 | "O campo de descrição permite ao usuário inserir texto; O campo de descrição é validado para garantir que o texto não seja vazio caso o usuário ultrapasse o limite de valor do pedido" |
| 9 | ALTA | "Como usuário, quero poder excluir um comprovante anexado antes do envio, para que possa substituir por outro caso tenha anexado o errado." | 1 | 1 | "O usuário pode excluir um comprovante anexado antes de finalizar a solicitação de reembolso; O sistema confirma a exclusão do arquivo com uma mensagem e retirando a imagem/pdf da tela" |
| 10 | ALTA | "Como usuário, quero pertencer a múltiplos grupos e projetos, para que possa gerenciar reembolsos de diferentes áreas." | 3 | 2 | O sistema deve associar o usuário a grupos/projetos, cada projeto pode ter valores limites e opções diferentes para o usuário. |
| 11 | ALTA | "Como usuário, quero escolher o projeto, grupo ou área do reembolso, para que possa organizar minhas solicitações corretamente." | 3 | 2 | O usuário deve ser capaz de escolher um projeto em específico para realização do reembolso. |
| 12 | ALTA | "Como usuário, quero tirar uma foto do comprovante de despesa, para que possa anexá-lo à minha solicitação de reembolso." | 2 | 2 | O usuário deve ser capaz de escolher a utilizar a câmera do dispositivo para enviar comprovantes como anexos. |
| 13 | ALTA | "Como usuário, quero visualizar o status do meu pedido de reembolso, para que possa saber se foi aprovado ou rejeitado." | 1 | 2 | O usuário deve ter acesso a uma lista de reembolsos em que seus status são apresentados. |
| 14 | MÉDIA | "Como usuário, quero que meus reembolsos sejam organizados por projeto, grupo ou área, para que possa gerenciá-los com mais eficiência." | 3 | 2 | O usuário deve poder filtrar seus reembolsos por projeto através de um botão com uma lista dos projetos da qual ele pertence. |
| 15 | MÉDIA | "Como usuário, quero cancelar uma solicitação de reembolso antes da aprovação, para que possa evitar processamento de pedidos incorretos." | 1 | 2 | O usuário deve ser apresentado com um botão para cancelar seu pedido antes do envio do mesmo. |
| 16 | MÉDIA | "Como usuário, quero filtrar meus reembolsos por status (pendente, aprovado, rejeitado) ou por período para que possa encontrar informações rapidamente" | 4 | 2 | O usuário deve poder escolher em um botão o método de filtragem por status do pedido. |
| 17 | MÉDIA | "Como desenvolvidor, quero acesso a uma documentação ampla da funcionalidade dos endpoints do sistema." | 5 | 3 | O sistema deve disponibilizar acesso a uma página web (swagger) com documentação de todos os end-points da API utilizada na aplicação com exemplos. |
| 18 | MÉDIA | "Como usuário, quero acesso a um manual de uso e instalação da aplicação." | 3 | 3 | O README do projeto deve incluir instruções de como rodar o projeto |
| 19 | MÉDIA | "Como usuário, quero ver o motivo pelo qual meu reembolso foi rejeitado, para que possa corrigir e reenviar, se necessário." | 1 | 3 | O projeto deve mostrar dentro de uma tela separada detalhes do estado do reembolso e a justificativa da rejeição caso haja. |
working.project.demo.mp4
- Implementar Aplicação com ORM em BD Relacional.
- Implementar Aplicação com Persistência de JSON (MongoDB por ex).
- Linguagem TypeScript e JavaScript.
- Tecnologias React e ReactNative.
- SO Android e Android SDK.
- Banco de dados NOSQL (ex: Mongo ou equivalente).
- Banco de dados Relacional (ex: MySQL ou equivalente).
- Node.js v20.6.0 ou superior
- MySQL 8.0
- Git
- MongoDb
- Abra o cmd na pasta aonde deseja instalar o projeto
- Execute o comando
git clone https://github.com/Byte-Boost/ExpenseFlow- Entre no diretório ExpenseFlow\Backend_ExpenseFlow
- Crie um arquivo chamado ".env"
- Abra este arquivo com seu editor de texto de preferência, e preencha o mesmo seguindo o modelo ".env.example", presente no mesmo diretório.
- Repita os passos 4 e 5 no diretório ExpenseFlow\Frontend_ExpenseFlow e ExpenseFlow\Web_ExpenseFlow
- Certifique-se que seus serviços MySQL e MongoDb estejam rodando
- Abra o cmd na pasta ExpenseFlow\Backend_ExpenseFlow
- Rode os comandos:
npm install
npm run start
- Abra o cmd na pasta ExpenseFlow\Frontend_ExpenseFlow
- Rode os comandos:
npm install
npx expo start
- Abra o cmd na pasta ExpenseFlow\Web_ExpenseFlow
- Rode os comandos:
npm install
npm run dev