Skip to main content

A comprehensive task management application

Project description

TaskFlow: Comprehensive Task Management Application

Project Status Python Versions License Build Status Coverage Last Commit

🚀 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

  1. Python: Instale Python 3.8+

  2. Ferramentas Necessárias:

    • Git
    • PowerShell (para Windows)
    • Pre-commit

Configuração Automática (Recomendado)

Windows

  1. Abra o PowerShell como Administrador

  2. Clone o repositório:

    git clone https://github.com/seu-usuario/taskflow.git
    cd taskflow
    
  3. Execute o script de configuração:

    .\scripts\setup_env.ps1
    

Linux/macOS

  1. Clone o repositório:

    git clone https://github.com/seu-usuario/taskflow.git
    cd taskflow
    
  2. Execute o script de configuração:

    ./scripts/setup_env.sh
    

Configuração Manual

  1. Crie um ambiente virtual:

    python -m venv .venv
    
  2. Ative o ambiente virtual:

    • Windows: .venv\Scripts\Activate
    • Linux/macOS: source .venv/bin/activate
  3. Instale as dependências:

    pip install -r requirements.txt
    pip install -r requirements-dev.txt
    
  4. Instale o projeto em modo editável:

    pip install -e .
    
  5. 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

  1. Faça fork do projeto
  2. Crie sua branch de feature (git checkout -b feature/nova-feature)
  3. Commit suas mudanças (git commit -m 'Adiciona nova feature')
  4. Push para a branch (git push origin feature/nova-feature)
  5. 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

---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

  1. Code Quality Checks

    • Code formatting (Black)
    • Import sorting (isort)
    • Linting (Flake8, Pylint)
    • Type checking (MyPy)
  2. Security Analysis

    • Vulnerability scanning (Bandit)
    • Dependency security checks (Safety)
    • Software Bill of Materials (SBOM) generation
  3. Testing

    • Unit tests across multiple Python versions
    • Cross-platform testing (Linux, Windows, macOS)
    • Code coverage reporting
  4. 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 username
  • PYPI_PASSWORD: PyPI token
  • SLACK_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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

taskflow_desktop-0.1.0.tar.gz (9.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

taskflow_desktop-0.1.0-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

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

Hashes for taskflow_desktop-0.1.0.tar.gz
Algorithm Hash digest
SHA256 afab9bb6819c4ee88d76c94d5b57cb74848937389f3d5909fb9565c027f83d96
MD5 d35f8f36fc5bf5c339a42e6be5123bac
BLAKE2b-256 499f4c7f16fe874847e3d04a35815fbf7a606602f0b252b8b8f03e07be818f2f

See more details on using hashes here.

File details

Details for the file taskflow_desktop-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for taskflow_desktop-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 62723e3d27be01cf8ffa8ab393160a46a829d069cf94e3bcbc490fc2de0c3881
MD5 052813c752173189b6350031081e2766
BLAKE2b-256 ae944f19c85c5287abc4316eab5f4e7e2f449f53852c550984168a00ca1b194a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page