Skip to main content

A reminder management system

Project description

Reminder Manager

A Python-based reminder management library that helps track and manage reminders, with special features for antenatal care scheduling.

Features

Core Features ✓

  • Basic reminder creation and storage
  • Reminder retrieval by ID
  • Category-based filtering
  • Optional voice notifications
  • JSON-based persistence

Medical Features 🚧

  • Antenatal care appointment scheduling
  • High-risk pregnancy tracking
  • Medical reminder categorization

Management Features ⏳

  • Reminder completion tracking
  • Overdue reminder detection
  • Priority-based scheduling
  • Recurring reminders

Getting Started

Installation

  1. Clone the repository:
git clone https://github.com/yourusername/reminder-manager.git
  1. Create and activate a virtual environment:
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
  1. Install dependencies:
pip install -r requirements.txt

Project Structure

LIBRARY/
├── services/
│   ├── __init__.py
│   └── reminder_manager.py
├── models/
│   ├── __init__.py
│   └── reminder.py
└── main.py

Basic Usage

from services.reminder_manager import ReminderManager
from models.reminder import Reminder

# Initialize the reminder manager
manager = ReminderManager()

# Create a new reminder
reminder = Reminder(
    title="Doctor's Appointment",
    description="Annual checkup",
    due_date="2024-04-01"
)

# Add the reminder
manager.create_reminder(reminder)

Features in Development

  • Persistent storage using JSON
  • Voice notifications
  • Antenatal care scheduling
  • Reminder categories

Contributing

Feel free to submit issues and enhancement requests.

License

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

Authors

  • Your Name

Prerequisites

  • Python 3.6 or higher
  • pip (Python package installer)
  • Virtual environment (recommended)
  • Required packages:
    • datetime
    • json
    • typing (for type hints)
    • pathlib (for file handling)

Configuration

The ReminderManager supports extensive configuration:

manager = ReminderManager(
    storage_path="custom_reminders.json",  # Default: reminders.json
    voice_enabled=True,                    # Default: True
    backup_enabled=True,                   # Default: False
    backup_frequency=24,                   # Hours between backups
    date_format="%Y-%m-%d",               # Default ISO format
    categories=[                          # Default categories
        "medical",
        "personal",
        "work",
        "antenatal"
    ]
)

API Reference

ReminderManager Methods

# Create a new reminder
create_reminder(reminder: Reminder) -> int
"""Creates a new reminder and returns its ID"""

# Get a specific reminder
get_reminder(reminder_id: int) -> Reminder
"""Retrieves a reminder by its ID. Raises IndexError if not found"""

# Get reminders by category
get_reminders_by_category(category: str) -> List[Reminder]
"""Returns all reminders in the specified category"""

# Get overdue reminders
get_overdue_reminders() -> List[Reminder]
"""Returns all reminders past their due date"""

# Update reminder
update_reminder(reminder: Reminder) -> bool
"""Updates an existing reminder. Returns success status"""

# Delete reminder
delete_reminder(reminder_id: int) -> bool
"""Deletes a reminder. Returns success status"""

Reminder Properties

reminder = Reminder(
    title="Example",              # Required
    description="Description",    # Required
    due_date="2024-04-01",       # Required, ISO format
    category="medical",          # Optional
    priority=1,                  # Optional (1-5)
    recurring=False,             # Optional
    recurring_interval=None,     # Optional (days)
    completed=False,             # Optional
    tags=["important"],          # Optional
    attachments=[],              # Optional
    notifications=True           # Optional
)

Error Handling

try:
    reminder = manager.get_reminder(reminder_id)
except IndexError:
    print("Reminder not found")
except ValueError:
    print("Invalid reminder format")
except FileNotFoundError:
    print("Storage file not found")
except json.JSONDecodeError:
    print("Corrupt storage file")
except Exception as e:
    print(f"Unexpected error: {str(e)}")

Best Practices

  • Always use try-except blocks when accessing reminders
  • Regularly backup the reminders.json file
  • Use ISO format for dates (YYYY-MM-DD)
  • Implement proper error handling
  • Use meaningful reminder titles and descriptions
  • Categorize reminders appropriately
  • Set realistic due dates
  • Keep the storage file in a secure location
  • Regular maintenance of old/completed reminders
  • Document any custom implementations

Troubleshooting

Common issues and solutions:

Import Issues

  • Problem: Module not found errors
    • Solution: Check PYTHONPATH
    • Solution: Verify init.py files exist
    • Solution: Use absolute imports

Storage Issues

  • Problem: File not found
    • Solution: Check file permissions
    • Solution: Verify path exists
    • Solution: Create directory if missing

Date Format Issues

  • Problem: Invalid dates
    • Solution: Use ISO format (YYYY-MM-DD)
    • Solution: Validate dates before saving
    • Solution: Handle timezone differences

Performance Issues

  • Problem: Slow loading with many reminders
    • Solution: Implement pagination
    • Solution: Archive old reminders
    • Solution: Use database instead of JSON

Future Enhancements

Short Term (3-6 months)

  • Web interface for reminder management
  • Mobile app integration
  • Calendar sync features
  • Multi-user support

Medium Term (6-12 months)

  • AI-powered scheduling suggestions
  • Natural language processing for reminder creation
  • Advanced recurring reminder patterns
  • Integration with popular calendar services

Long Term (12+ months)

  • Distributed system support
  • Blockchain-based reminder verification
  • Machine learning for priority optimization
  • Real-time collaboration features

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

reminder_manager-0.0.1.tar.gz (13.4 kB view details)

Uploaded Source

Built Distribution

reminder_manager-0.0.1-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

File details

Details for the file reminder_manager-0.0.1.tar.gz.

File metadata

  • Download URL: reminder_manager-0.0.1.tar.gz
  • Upload date:
  • Size: 13.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.13.0rc3

File hashes

Hashes for reminder_manager-0.0.1.tar.gz
Algorithm Hash digest
SHA256 244e7afc7b6f70ef5101b25f936f28fac5bf993a4c0d012a6283335e7e7ccf1f
MD5 994bcbafd85443f57d9b4367e753d5d4
BLAKE2b-256 9a132e8f3646a934da30c142818a2795c0f0c1023b587ac386009ac588b0b23d

See more details on using hashes here.

File details

Details for the file reminder_manager-0.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for reminder_manager-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 08edad03be82fe7562dcfb54206df991aa366c13f8f03b821efc0121d9588cf2
MD5 a88f1310d9a952e7de0c3fdfc3706388
BLAKE2b-256 899191f7562ce4db3a6ec3756db503cc2b97917b7fd0cdaf44aef4c02a11b25a

See more details on using hashes here.

Supported by

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