A comprehensive task management application
Project description
TaskFlow: Comprehensive Task Management Application
🚀 Visão Geral do Projeto
TaskFlow é uma aplicação de gerenciamento de tarefas desenvolvida em Python, utilizando PyQt6 para interface gráfica e SQLAlchemy para persistência de dados.
🌟 Recursos Principais
- Interface gráfica moderna com PyQt6
- Gerenciamento de tarefas robusto
- Persistência de dados com SQLAlchemy
- Suporte a múltiplas plataformas
- Configurações de segurança avançadas
📋 Requisitos do Sistema
- Sistema Operacional: Windows 10/11, Linux, macOS
- Python: 3.8 - 3.10
- Dependências: Listadas em
requirements.txt
🛠️ Configuração do Ambiente de Desenvolvimento
Pré-requisitos
-
Python: Instale Python 3.8+
- Download Python
- Certifique-se de adicionar Python ao PATH do sistema
-
Ferramentas Necessárias:
- Git
- PowerShell (para Windows)
- Pre-commit
Configuração Automática (Recomendado)
Windows
-
Abra o PowerShell como Administrador
-
Clone o repositório:
git clone https://github.com/seu-usuario/taskflow.git cd taskflow
-
Execute o script de configuração:
.\scripts\setup_env.ps1
Linux/macOS
-
Clone o repositório:
git clone https://github.com/seu-usuario/taskflow.git cd taskflow
-
Execute o script de configuração:
./scripts/setup_env.sh
Configuração Manual
-
Crie um ambiente virtual:
python -m venv .venv
-
Ative o ambiente virtual:
- Windows:
.venv\Scripts\Activate - Linux/macOS:
source .venv/bin/activate
- Windows:
-
Instale as dependências:
pip install -r requirements.txt pip install -r requirements-dev.txt
-
Instale o projeto em modo editável:
pip install -e .
-
Configure pre-commit:
pre-commit install
🧪 Executando Testes
# Executar todos os testes
pytest
# Executar com cobertura de código
pytest --cov=src
🔍 Ferramentas de Desenvolvimento
- Formatação: Black
- Linting: Flake8, Pylint
- Tipagem: Mypy
- Testes: Pytest
- Pré-commit: Verificações de qualidade de código
Comandos Úteis
# Formatar código
black .
# Verificar tipos
mypy .
# Executar linters
flake8 .
# Verificar importações
isort .
📦 Estrutura do Projeto
taskflow/
│
├── src/ # Código fonte principal
│ └── taskflow/
│ ├── models/
│ ├── views/
│ ├── controllers/
│ └── utils/
│
├── tests/ # Testes automatizados
├── scripts/ # Utilitários e scripts
├── docs/ # Documentação
├── config/ # Configurações
└── .venv/ # Ambiente virtual
🔒 Políticas de Segurança
- Senhas criptografadas com bcrypt
- Validação de entrada
- Logging de segurança
- Controle de acesso baseado em função
🤝 Contribuindo
- Faça fork do projeto
- Crie sua branch de feature (
git checkout -b feature/nova-feature) - Commit suas mudanças (
git commit -m 'Adiciona nova feature') - Push para a branch (
git push origin feature/nova-feature) - Abra um Pull Request
Diretrizes de Contribuição
- Siga os padrões de código do projeto
- Escreva testes para novas funcionalidades
- Mantenha a cobertura de código acima de 80%
- Documente suas alterações
📄 Licença
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.
📞 Contato
Erton Miranda
- Email: erton.miranda@example.com
- GitHub: @ertonmiranda
---Texto Última Atualização: $(date +'%Y-%m-%d')
Static Code Analysis
The TaskFlow project uses multiple tools to ensure code quality and maintain high standards:
Tools Used
- Black: Code formatting
- isort: Import sorting
- Flake8: Linting
- Pylint: Advanced linting
- MyPy: Static type checking
- Bandit: Security analysis
Running Static Analysis
To run all static analysis tools:
python scripts/static_analysis.py
Pre-commit Hooks
We use pre-commit hooks to automatically run checks before each commit:
# Install pre-commit
pip install pre-commit
# Set up pre-commit hooks
pre-commit install
Configuration
Static analysis tools are configured in:
pyproject.toml: Tool-specific configurations.pre-commit-config.yaml: Pre-commit hook settings
Code Quality Standards
- Maximum line length: 88 characters
- Minimum test coverage: 80%
- Strict type checking
- Security vulnerability scanning
🚀 Continuous Integration & Deployment (CI/CD)
Workflow Overview
Our CI/CD pipeline ensures code quality, security, and seamless deployment:
Stages
-
Code Quality Checks
- Code formatting (Black)
- Import sorting (isort)
- Linting (Flake8, Pylint)
- Type checking (MyPy)
-
Security Analysis
- Vulnerability scanning (Bandit)
- Dependency security checks (Safety)
- Software Bill of Materials (SBOM) generation
-
Testing
- Unit tests across multiple Python versions
- Cross-platform testing (Linux, Windows, macOS)
- Code coverage reporting
-
Build & Publish
- Automatic package building
- PyPI publication
- GitHub release creation
Deployment Triggers
- Main Branch: Automatic deployment
- Pull Requests: Validation checks
Secrets Configuration
Configure the following GitHub Secrets:
PYPI_USERNAME: PyPI usernamePYPI_PASSWORD: PyPI tokenSLACK_WEBHOOK: Slack notification webhook (optional)
Manual Deployment
# Trigger semantic release manually
npx semantic-release
Monitoring
- Coverage: Codecov integration
- Notifications: Slack alerts
- Release Notes: Automatically generated
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file taskflow_desktop-0.1.0.tar.gz.
File metadata
- Download URL: taskflow_desktop-0.1.0.tar.gz
- Upload date:
- Size: 9.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
afab9bb6819c4ee88d76c94d5b57cb74848937389f3d5909fb9565c027f83d96
|
|
| MD5 |
d35f8f36fc5bf5c339a42e6be5123bac
|
|
| BLAKE2b-256 |
499f4c7f16fe874847e3d04a35815fbf7a606602f0b252b8b8f03e07be818f2f
|
File details
Details for the file taskflow_desktop-0.1.0-py3-none-any.whl.
File metadata
- Download URL: taskflow_desktop-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
62723e3d27be01cf8ffa8ab393160a46a829d069cf94e3bcbc490fc2de0c3881
|
|
| MD5 |
052813c752173189b6350031081e2766
|
|
| BLAKE2b-256 |
ae944f19c85c5287abc4316eab5f4e7e2f449f53852c550984168a00ca1b194a
|