Skip to content

Latest commit

 

History

History
144 lines (109 loc) · 3.6 KB

File metadata and controls

144 lines (109 loc) · 3.6 KB

🤝 Contributing to Daily Time & Productivity Tracker

Thank you for your interest in contributing! This guide will help you get started.

📜 Code of Conduct

  • Be respectful and inclusive
  • Accept constructive criticism gracefully
  • Focus on what's best for the community

🚀 Getting Started

Prerequisites: Python 3.8+, Git, GitHub account

Setup:

# Fork and clone the repository
git clone https://github.com/yourusername/productivity-tracker.git
cd productivity-tracker

# Add upstream remote
git remote add upstream https://github.com/debugfest/productivity-tracker.git

# Create virtual environment
python -m venv venv
# Windows: venv\Scripts\activate
# macOS/Linux: source venv/bin/activate

# Install dependencies
pip install -r requirements.txt
pip install pytest pytest-cov black flake8 mypy

# Verify installation
python main.py
python demo.py
pytest

📁 Project Structure

  • main.py: CLI interface and user interaction
  • tracker.py: Task data model and database operations
  • report.py: Report generation and visualizations
  • utils.py: Validation and utility functions
  • demo.py: Demo script with sample data

📝 How to Contribute

We welcome:

  • 🐛 Bug fixes
  • ✨ New features
  • 📚 Documentation improvements
  • 🧪 Tests and test coverage
  • ⚡ Performance optimizations
  • 🔧 Code refactoring

Before starting:

  1. Check existing issues
  2. Create an issue for significant changes
  3. Follow coding standards below

🎯 Priority TODOs

High Priority:

  • Add unit tests: test_utils.py, test_tracker.py, test_report.py (4-8 hours each)
  • Integrate Rich library for colored CLI output (4-6 hours)
  • Add export reports to Excel/PDF feature (6-8 hours)

Medium Priority:

  • Pomodoro timer integration (8-10 hours)
  • Tkinter GUI interface (12-15 hours)
  • Data backup and restore (6-8 hours)
  • Goal setting and tracking (8-10 hours)

Lower Priority:

  • Habit tracking, cloud sync, team collaboration features

📏 Coding Standards

General:

  • Follow PEP 8 style guidelines
  • Use type hints for all functions
  • Write docstrings for all functions, classes, and modules
  • Keep line length under 88 characters

🔄 Pull Request Process

Steps:

  1. Create feature branch: git checkout -b feature/your-feature-name
  2. Make changes following coding standards
  3. Add tests for new functionality
  4. Run tests and linting:
    pytest
    flake8 productivity_tracker/
    black --check productivity_tracker/
    mypy productivity_tracker/
  5. Commit and push: git push origin feature/your-feature-name

PR Checklist:

  • Code follows coding standards
  • Tests added/updated
  • Documentation updated
  • All tests pass
  • No linting errors

🐛 Issue Guidelines

Bug Reports:

  • Clear title and description
  • Steps to reproduce
  • Expected vs actual behavior
  • Environment details (OS, Python version)
  • Error messages and stack traces

Feature Requests:

  • Clear description and use case
  • Proposed solution
  • Alternatives considered

Labels: bug, enhancement, documentation, good first issue, help wanted

📚 Resources

💬 Getting Help

  • Check existing issues
  • Read documentation and code comments
  • Create a new issue with details
  • Join GitHub Discussions

Thank you for contributing! ⏰📊