Skip to content

O projeto tem como objetivo analisar alguns ativos da bolsa de valores utilizando web scraping. Após a análise, os dados são armazenados, de forma organizada em banco de dados e/ou em uma planilha.

License

Notifications You must be signed in to change notification settings

Drarlian/invesight-back

Repository files navigation

Invesight Backend 🚀

Este repositório contém o backend da aplicação Invesight, uma plataforma de análise de ativos financeiros. O backend foi desenvolvido em Python 3 utilizando o framework FastAPI para fornecer uma API RESTful eficiente, com integração ao banco de dados MongoDB Atlas e funcionalidades de web scraping para obter dados financeiros em tempo real.

🛠 Tecnologias

  • Python 3 🐍
  • FastAPI ⚡: Framework para a criação de APIs RESTful rápidas e eficientes.
  • MongoDB Atlas 🗃️: Banco de dados em nuvem utilizado para armazenamento dos dados dos ativos e imagens das ações.
  • Web Scraping 🌐: Utilizado para obter dados financeiros não disponíveis no banco de dados.
  • Algoritmos de Busca com Lógica Fuzzy 🔍: Implementados para realizar buscas rápidas e dinâmicas de ativos financeiros.
  • Planilhas Excel e Google Sheets 📊 (não em uso atualmente): Integração com planilhas para exibição de dados obtidos através de web scraping (em versões anteriores).

📋 Funcionalidades

  • API RESTful 🔌: A API segue as normas de RESTful para fornecer endpoints de fácil uso e integração.
  • Conexão com MongoDB Atlas 🗄️: O projeto se conecta ao MongoDB Atlas para armazenar e acessar dados dos ativos e imagens (logos das ações).
  • Web Scraping 🧑‍💻: O backend utiliza técnicas de scraping para buscar dados financeiros de ativos que não estão no banco de dados.
  • Busca Dinâmica e Rápida ⚡: Algoritmos de busca com lógica fuzzy são utilizados para realizar buscas rápidas de ativos no frontend.
  • EndPoints de Ativos do Tesouro Direto 💰: Embora ainda não utilizados no frontend, a API contém endpoints para obtenção dos ativos do Tesouro Direto, que serão aprimorados quando implementados no futuro.

🗂 Estrutura de Diretórios

O projeto segue uma estrutura modular e organizada, com pastas e arquivos bem definidos para facilitar a manutenção e expansão. A estrutura básica é a seguinte:

invesight-backend/
│
├── AtivosAPI/
│   ├── entities/                # Definições dos modelos e entidades
│   │   └── actives.py
│   ├── functions/               # Funções de lógica de negócio
│   │   ├── database_functions/  # Funções para interagir com o banco de dados
│   │   │   ├── db_actives.py
│   │   │   ├── db_images.py
│   │   │   └── db_manipulation.py
│   │   ├── filter_functions/    # Funções de filtragem de dados
│   │   │   └── filter_functions.py
│   │   ├── request_functions/   # Funções de requisições
│   │   │   └── find_indices.py
│   │   └── utilities_functions/ # Funções utilitárias
│   │       └── utilities.py
│   ├── routes/                  # Endpoints da API
│   │   └── routes.py
│   └── web_scrapping/           # Scripts de web scraping
│       ├── b3_actives.py
│       └── treasury_bonds.py
│
├── PlanilhaExcel/
├── PlanilhaGoogle/
├── RasgagemDados/
├── .env
├── .gitignore
├── LICENSE
├── main.py
├── old_main.py
└── requirements.txt           # Dependências do projeto

🚀 Como Rodar o Projeto

🔧 Pré-requisitos

  • Python 3.8 ou superior
  • MongoDB Atlas configurado
  • Dependências do projeto (listadas no requirements.txt)

⚙️ Instalação

  1. Clone o repositório:

    git clone https://github.com/yourusername/invesight-backend.git
    cd invesight-backend
  2. Instale as dependências:

    pip install -r requirements.txt
  3. Configure as variáveis de ambiente (por exemplo, credenciais do MongoDB Atlas) no arquivo .env.

  4. Para rodar a aplicação, execute:

    uvicorn app.main:app --reload
  5. A API estará disponível em http://localhost:8000.


🤝 Como Contribuir

  1. Faça um fork deste repositório.
  2. Crie uma nova branch (git checkout -b feature-nome-da-feature).
  3. Faça as modificações necessárias.
  4. Envie as alterações (git commit -am 'Adiciona nova funcionalidade').
  5. Envie a branch para o repositório remoto (git push origin feature-nome-da-feature).
  6. Crie um pull request.

📬 Contato

Criado por Witor Oliveira
🔗 LinkedIn
📫 Contato por e-mail


📜 Licença

Este projeto está licenciado sob a licença MIT. Veja o arquivo MIT License para mais detalhes.

About

O projeto tem como objetivo analisar alguns ativos da bolsa de valores utilizando web scraping. Após a análise, os dados são armazenados, de forma organizada em banco de dados e/ou em uma planilha.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages