https://github.com/drarlian/invesight-back
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.
https://github.com/drarlian/invesight-back
api-rest beautifulsoup4 fastapi google-sheets mongodb-atlas motor openpyxl python selenium
Last synced: about 2 months ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/drarlian/invesight-back
- Owner: Drarlian
- License: mit
- Created: 2023-04-16T16:22:10.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2025-04-14T17:57:14.000Z (about 1 year ago)
- Last Synced: 2025-06-15T23:30:37.030Z (about 1 year ago)
- Topics: api-rest, beautifulsoup4, fastapi, google-sheets, mongodb-atlas, motor, openpyxl, python, selenium
- Language: Python
- Homepage:
- Size: 115 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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:
```bash
git clone https://github.com/yourusername/invesight-backend.git
cd invesight-backend
```
2. Instale as dependências:
```bash
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:
```bash
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](https://www.linkedin.com/in/witoroliveira/)
📫 [Contato por e-mail](mailto:witoredson@gmail.com)
---
## 📜 Licença
Este projeto está licenciado sob a licença MIT. Veja o arquivo [MIT License](./LICENSE) para mais detalhes.