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.
- 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).
- 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.
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
- Python 3.8 ou superior
- MongoDB Atlas configurado
- Dependências do projeto (listadas no
requirements.txt)
-
Clone o repositório:
git clone https://github.com/yourusername/invesight-backend.git cd invesight-backend -
Instale as dependências:
pip install -r requirements.txt
-
Configure as variáveis de ambiente (por exemplo, credenciais do MongoDB Atlas) no arquivo
.env. -
Para rodar a aplicação, execute:
uvicorn app.main:app --reload
-
A API estará disponível em
http://localhost:8000.
- Faça um fork deste repositório.
- Crie uma nova branch (
git checkout -b feature-nome-da-feature). - Faça as modificações necessárias.
- Envie as alterações (
git commit -am 'Adiciona nova funcionalidade'). - Envie a branch para o repositório remoto (
git push origin feature-nome-da-feature). - Crie um pull request.
Criado por Witor Oliveira
🔗 LinkedIn
📫 Contato por e-mail
Este projeto está licenciado sob a licença MIT. Veja o arquivo MIT License para mais detalhes.