Skip to main content

A simple task management package

Project description

ZephyrTask

CI / CD

A simple, lightweight Python package for managing tasks with support for prioritization, reminders, and rewards. ZephyrTask provides a clean API for organizing your tasks, reminding you of upcoming deadlines, and rewarding your accomplishments.

Features

  • Task Management: Add, update, and remove tasks with customizable time and value parameters
  • Task Listing: List tasks with various sorting options (upcoming, by priority, etc.)
  • Task Completion: Mark tasks as completed and track your progress
  • Reminder System: Get email reminders for upcoming tasks to stay on track
  • Reward System: Receive motivational rewards when completing tasks of sufficient value

Installation

From PyPI (Recommended)

pip install ZephyrTask

From Source

# Clone the repository
git clone https://github.com/software-students-spring2025/3-python-package-super-package.git
cd ZephyrTask

# Install in development mode
pip install -e .

Usage

Core Task Management

import datetime
from ZephyrTask.tasks import add_task, update_task, remove_task

# Add a task with a string time (ISO format)
add_task("2023-06-15T09:00:00", "Morning meeting", 5)

# Add a task with a datetime object
tomorrow = datetime.datetime.now() + datetime.timedelta(days=1)
add_task(tomorrow, "Lunch with team", 3)

# Update a task's value
update_task("2023-06-15T09:00:00", "Morning meeting", 10)

# Remove a task
remove_task("2023-06-15T09:00:00", "Morning meeting")

# Mark a task as completed
complete("Morning meeting")

Task Listing

from ZephyrTask.tasks import list_tasks

# List all tasks sorted by time
tasks = list_tasks(sort_by="time")

# List all tasks sorted by value (highest first)
tasks = list_tasks(sort_by="value")

Reminder System

from ZephyrTask.tasks import reminder
reminder(to_email=target_email, tasks_file=temp_tasks_file, deadline=48)

# Configure email reminders
reminder( tasks_file: Optional[str] = None,
    to_email: str = "",
    deadline: int = 24, # searching for tasks remained to be done within given hours, default set is 24
    from_email: str = "13601583609@163.com", #our default email provided for user
    smtp_server: str = "smtp.163.com",
    smtp_port: int = 465,
    login: str = "13601583609@163.com",
    password: str = "password for default email given",
    additional_text: str = "",
    rank: str = "time" ) #2 options for ranking, time & value

Example of reminder mail

list

Reward System

from ZephyrTask.tasks import reward

# Configure motivational rewards
reward_result = reward(
    threshold_value=reward_threshold,
    tasks_file=temp_tasks_file,
    to_email=target_email,
    reward_message="You've made great progress! Keep going!",
    include_joke=True)

Example of reward mail

list

For Contributors

Development Setup

# Clone the repository
git clone https://github.com/software-students-spring2025/3-python-package-super-package.git
cd ZephyrTask

# Create and activate a virtual environment
pipenv --python 3.9
pipenv shell

# Install package in development mode
pipenv install -e .

# Install development dependencies
pipenv install pytest build twine

# Run tests
pytest

Development Workflow

  1. Create a feature branch for your work

  2. Implement your changes and add tests

  3. Make sure tests pass

    python -m pytest
    
  4. Create a pull request to the main branch

Project Structure

3-python-package-super-package/     # Root project directory
├── ZephyrTask/                     # Main package source code
│   ├── __init__.py                 # Package initialization and exports
│   ├── tasks.py                    # Core task management; Task listing and completion tracking; Email reminder system; Motivational reward system
│
├── tests/                          # Test directory
│   ├── __init__.py                 # Test package initialization
│   ├── test_tasks.py               # Tests for tasks module
│
├── examples/                       # Example scripts
│   ├── example_usage.py            # Basic package usage examples
│
│-- docs/                           # Documentation files
│   ├── mail.jpg                    # Example of reminder mail
│   └── reward.jpg                  # Example of reward mail
│
├── .github/                        # GitHub specific files
│   └── workflows/                  # GitHub Actions workflows
│       ├── python-package.yml      # CI workflow for testing and building
│       └── event-logger.yml        # CI workflow for logging events
├── pyproject.toml                  # Project configuration (PEP 517/518)
├── Pipfile                         # Pipenv dependency management
├── Pipfile.lock                    # Locked dependencies (ensure reproducibility)
├── README.md                       # Project documentation
├── LICENSE                         # License information
└── .gitignore                      # Git ignore patterns

Key Modules

  • tasks.py:

  • Core module for adding, updating, and removing tasks. Tasks are stored as JSON with timestamps, descriptions, values, and completion status.

  • Module for listing tasks with various sorting and filtering options, and for marking tasks as completed.

  • Module for setting up and sending email reminders for upcoming tasks.

  • Module for providing motivational rewards when users complete tasks of sufficient value.

Data Storage

By default, tasks are stored in a JSON file at ~/.ZephyrTask_data.json. Each task has the following structure:

{
  "time": "2023-06-15T09:00:00",
  "event": "Morning meeting",
  "value": 5,
  "completed": false
}

You can specify a custom file path when using the API functions.

Contributors

  • Xingjian - Core Task Management
  • Lan - Task Listing and Completion
  • Yuquan - Email Reminders
  • Yilei - Reward System

License

This project is licensed under the MIT License - see the LICENSE file for details.

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

zephyrtask-0.1.4.tar.gz (46.8 kB view details)

Uploaded Source

Built Distribution

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

zephyrtask-0.1.4-py3-none-any.whl (33.0 kB view details)

Uploaded Python 3

File details

Details for the file zephyrtask-0.1.4.tar.gz.

File metadata

  • Download URL: zephyrtask-0.1.4.tar.gz
  • Upload date:
  • Size: 46.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.21

File hashes

Hashes for zephyrtask-0.1.4.tar.gz
Algorithm Hash digest
SHA256 bfba5d02dd7b12fc859d6720225585a339c7ee0de86d82ee0bf582441cbed0f9
MD5 1b4ba493f4bf04397d60f80a1f3938d6
BLAKE2b-256 ca3b6ddf7b5d0b8202610643bcd75169dba39fc095ccd1854acbca86e55c3527

See more details on using hashes here.

File details

Details for the file zephyrtask-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: zephyrtask-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 33.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.21

File hashes

Hashes for zephyrtask-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 1466ef6960bafe6033e9900bddcd949ac8c4ec190ec2b038f130c92c092767fe
MD5 f2775cd40e75b7aeac0d72b4fc7445ab
BLAKE2b-256 4197c31165175498e313a098e01c0b2f2e8e44cff83a3b3d7600952252c1e648

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