Skip to content

Projeto de alunos do 5º Semestre de Análise e Desenvolvimento da FATEC

Byte-Boost/ExpenseFlow

Repository files navigation

ExpenseFlow 🏦


Objetivo | Visão do produto | Cronograma | Backlog/Entregas | Requisitos | Tecnologias | Como usar | Equipe

🎯 Objetivo

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.

👁️‍🗨️ Visão do Produto

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.

🗓️ Cronograma

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

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.

🎥 Video Apresentação

Video no Youtube

working.project.demo.mp4

🔎 Requisitos

  • 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).

🖥️Tecnologias:

🛠️ Ferramentas:

Como utilizar

Requisitos :

  • Node.js v20.6.0 ou superior
  • MySQL 8.0
  • Git
  • MongoDb

Preparando o projeto

  1. Abra o cmd na pasta aonde deseja instalar o projeto
  2. Execute o comando
git clone https://github.com/Byte-Boost/ExpenseFlow
  1. Entre no diretório ExpenseFlow\Backend_ExpenseFlow
  2. Crie um arquivo chamado ".env"
  3. 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.
  4. Repita os passos 4 e 5 no diretório ExpenseFlow\Frontend_ExpenseFlow e ExpenseFlow\Web_ExpenseFlow

Executando o projeto

Backend

  1. Certifique-se que seus serviços MySQL e MongoDb estejam rodando
  2. Abra o cmd na pasta ExpenseFlow\Backend_ExpenseFlow
  3. Rode os comandos:
npm install
npm run start

Frontend

  1. Abra o cmd na pasta ExpenseFlow\Frontend_ExpenseFlow
  2. Rode os comandos:
npm install
npx expo start

Web

  1. Abra o cmd na pasta ExpenseFlow\Web_ExpenseFlow
  2. Rode os comandos:
npm install
npm run dev

👥 Equipe:

Static Badge - Arthur Silva:

Static Badge - Jaqueline Silva :

Static Badge - João Eduardo Messias :

Static Badge - Marcos Antonio :

Static Badge - Markos Nunes :

Static Badge - Sandro Pimentel :

Static Badge - Vinícius Forcato :

Static Badge - Vitor Saborito :

About

Projeto de alunos do 5º Semestre de Análise e Desenvolvimento da FATEC

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •