Skip to content

Josein01/Projeto_4

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 

Repository files navigation

InvestEasy - Simulador de Investimentos em Renda Fixa

InvestEasy é uma aplicação web focada na simulação e no cálculo de investimentos em renda fixa, permitindo que os usuários entendam a rentabilidade de diferentes produtos de forma simples e direta.

✨ Funcionalidades Principais

  • Autenticação de Usuários: Sistema completo de cadastro e login para uma experiência personalizada.
  • Simulação de Investimentos:
    • Cálculo detalhado para CDB/RDB com base no percentual do CDI.
    • (Em desenvolvimento) Simulação para LCI/LCA (isentos de IR) e Títulos do Tesouro Direto.
  • Indicadores em Tempo Real: Consulta automática das taxas CDI e SELIC através da API pública do Banco Central do Brasil, garantindo cálculos sempre atualizados.
  • Interface Integrada: O back-end serve tanto a API de dados quanto a interface do usuário, criando uma aplicação web coesa e fácil de executar.

💻 Tecnologias Utilizadas

  • Backend:

    • Python 3
    • Flask: Microframework para a construção da API e o serviço das páginas.
    • Flask-SQLAlchemy: ORM para interação com o banco de dados.
    • Flask-JWT-Extended: Para autenticação baseada em tokens.
    • MySQL: Banco de dados relacional para armazenamento dos usuários.
  • Frontend:

    • HTML5
    • CSS3
    • JavaScript (Vanilla)

📂 Estrutura do Projeto

Este projeto utiliza uma estrutura de monorepo, onde o código do back-end e do front-end residem no mesmo repositório para facilitar o gerenciamento, mas mantendo uma separação lógica de pastas.

PROJETO_4/
|
|-- .vscode/
|   └── settings.json       # Configurações do VS Code para o projeto
|
|-- Backend/                # Contém toda a lógica do servidor Flask
|   |-- app/
|   |-- venv/
|   |-- config.py
|   |-- requirements.txt
|   └── run.py
|
|-- frontend/               # Contém os arquivos da interface do usuário
|   |-- static/
|   └── templates/
|
└── .gitignore              # Ignora arquivos desnecessários de ambos os projetos

🚀 Instalação e Configuração

Siga os passos abaixo para configurar e executar o projeto em seu ambiente local.

Pré-requisitos

  • Git
  • Python 3.8+
  • Um servidor MySQL em execução (ex: via MySQL Workbench)

Passo a Passo

  1. Clone o repositório:

    git clone <URL_DO_SEU_REPOSITORIO>
    cd PROJETO_4
  2. Configure o Ambiente do Backend:

    • Navegue até a pasta do backend:
      cd Backend
    • Crie e ative o ambiente virtual:
      # Criar o venv
      python -m venv venv
      # Ativar no Windows (PowerShell)
      .\venv\Scripts\activate
    • Instale as dependências:
      pip install -r requirements.txt
  3. Configure o Banco de Dados:

    • Abra seu cliente MySQL (Workbench, etc.) e crie o banco de dados:
      CREATE DATABASE investeasy_db;
    • No arquivo Backend/app/config.py, ajuste a linha SQLALCHEMY_DATABASE_URI com a sua senha do MySQL.
  4. Crie as Tabelas no Banco:

    • Certifique-se de que seu venv está ativo no terminal, dentro da pasta Backend.
    • Inicie o shell do Python: python
    • Execute os seguintes comandos:
      from app import create_app, db
      app = create_app()
      with app.app_context():
          db.create_all()
      exit()

▶️ Como Executar a Aplicação

  1. Navegue até a pasta do backend no terminal:

    cd Backend
  2. Crie e configure o ambiente virtual (apenas na primeira vez):

    # Criar o ambiente virtual
    python -m venv venv
    
    # Autorizar execução de scripts (necessário apenas uma vez no PowerShell)
    Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
  3. Ative o ambiente virtual:

    .\venv\Scripts\activate
  4. (Opcional) Desative o ambiente virtual quando terminar:

    deactivate
  5. Inicie o servidor Flask:

    python run.py
  6. Acesse a aplicação no navegador:

    http://127.0.0.1:5000
    

🌐 Endpoints da API

A aplicação expõe os seguintes endpoints de API (além de servir as páginas / e /resultados):

  • POST /api/registrar: Cria um novo usuário.
  • POST /api/login: Autentica um usuário e retorna um token JWT.
  • GET /api/indicadores: Retorna as taxas CDI e SELIC atuais.
  • POST /api/simular/cdb: (Requer autenticação) Simula um investimento em CDB.

Branches, Fluxo e Pull Requests

O que é uma branch?

Uma branch é uma “linha do tempo” paralela do seu código.

  • main (ou master): versão estável, pronta para produção.
  • Branches de feature/bugfix: onde a gente trabalha sem quebrar o que está em main.

Criar e trocar de branch

Crie uma branch nova a partir da main:

# 1) garanta que está na main e atualizada
git checkout main
git pull origin main

# 2) crie e mude para a nova branch
git checkout -b feature/nome-curto-da-tarefa

Voltar para outra branch existente:
git checkout main


Listar branches:
git branch          # locais
git branch -r       # remotas
git branch -a       # todas

Enviar sua branch pro remoto:
git push -u origin feature/nome-curto-da-tarefa

> Dica: use nomes claros, ex.: `feature/login-google`, `fix/validação-email`.


## Glossário rápido
- **Repo**: repositório.
- **Branch**: linha de desenvolvimento.
- **Commit**: pacote de mudanças.
- **PR (Pull Request)**: pedido de fusão.
- **Merge**: combinar branches.
- **Rebase**: reaplicar commits por cima de outra base.
- **Conflict**: mudanças conflitantes no mesmo trecho.

About

OwO

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors