Ferramenta Python com foco na geração de trabalhos acadêmicos em PDF.
- Geração de PDFs: Criação de documentos acadêmicos usando
fpdf2
. - Integração HTTP: Comunicação com APIs externas via
requests
. - Arquitetura Modular: Estrutura organizada em módulos (
core
,services
,ui
,utils
) para escalabilidade. - Gestão de Projetos Acadêmicos: Organização de trabalhos, instruções e arquivos de fontes e anexos.
- Python Moderno: Compatível com Python 3.10+.
- Python 3.10 ou superior
- Poetry (para gerenciamento de dependências)
# Clone o repositório
git clone https://github.com/cleitonleonel/AcademicManager.git
cd academic_manager
# Crie um ambiente virtual (opcional, mas recomendado)
python -m venv venv_academic
# Ative o ambiente virtual
source venv_academic/bin/activate # Linux/macOS
venv_academic\Scripts\activate # Windows
# Atualize o pip
python -m pip install --upgrade pip
# Instale as dependências
pip install -r requirements.txt
Para instalar o Poetry, siga as instruções em https://python-poetry.org/docs/#installation.
Depois, clone o repositório e instale as dependências:
# Clone o repositório
git clone https://github.com/cleitonleonel/AcademicManager.git
cd academic_manager
# Instale as dependências
poetry install
- Acesse o link https://aistudio.google.com e obtenha sua chave de api
- Renomeie o arquivo
config-dev.ini
paraconfig.ini
- Adicione a chave de api no arquivo
config.ini
na chaveapi_key
- Salve o arquivo
- Reinicie o projeto
Execute a aplicação usando o ponto de entrada principal:
python main.py
Ou através do Poetry:
poetry run python main.py
academic_manager/
├── academic_manager/
│ ├── builder.py # Criação e montagem de projetos acadêmicos
│ ├── constants.py # Constantes globais do sistema
│ ├── config/ # Configurações do projeto
│ │ └── settings.py
│ ├── core/ # Núcleo da aplicação
│ │ ├── file_manager.py
│ │ ├── pdf_generator.py
│ │ ├── project_manager.py
│ │ └── template_generator.py
│ ├── models/ # Modelos de dados
│ │ └── project.py
│ ├── services/ # Integrações externas e APIs
│ │ ├── aistudio_chat.py
│ │ └── bing_images.py
│ ├── ui/ # Interfaces e interações com o usuário
│ │ └── interface.py
│ └── utils/ # Funções auxiliares
│ └── helpers.py
├── academic_projects/ # Projetos e trabalhos acadêmicos organizados
├── tests/ # Testes unitários e de performance
├── main.py # Ponto de entrada
├── pyproject.toml # Configuração do Poetry
└── README.md # Este arquivo
Execute os testes usando pytest:
# Executar todos os testes
poetry run pytest
# Executar com verbose
poetry run pytest -v
# Executar testes específicos
poetry run pytest tests/academic_tests.py
Cobertura de testes inclui:
- Execução normal da aplicação
- Tratamento de interrupção por teclado
- Propagação adequada de exceções
- Isolamento usando mocks
Produção:
fpdf2
: Geração de documentos PDFrequests
: Cliente HTTP para APIs
Desenvolvimento:
pytest
: Framework de testespytest-mock
: Mocking para testes
# Instalar dependências de desenvolvimento
poetry install --with dev
# Executar testes
poetry run pytest
# Adicionar nova dependência
poetry add <package>
# Adicionar dependência de desenvolvimento
poetry add --group dev <package>
- Python >= 3.10
- Bibliotecas: fpdf2, requests, pytest, pytest-mock
- Sistema operacional: Linux, macOS, Windows
Este projeto está licenciado sob a Licença MIT. Veja o arquivo LICENSE para mais detalhes.
Cleiton Leonel Creton - @cleitonleonel
Contribuições são bem-vindas! Por favor:
- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/nova-feature
) - Commit suas mudanças (
git commit -am 'Adiciona nova feature'
) - Push para a branch (
git push origin feature/nova-feature
) - Abra um Pull Request
Este projeto está em desenvolvimento ativo. Para relatórios de bugs ou solicitações de features, abra uma issue no GitHub.