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
- Clone the repository:
git clone https://github.com/yourusername/reminder-manager.git
- Create and activate a virtual environment:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
- 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
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
reminder_manager-0.0.1.tar.gz
(13.4 kB
view details)
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 |
244e7afc7b6f70ef5101b25f936f28fac5bf993a4c0d012a6283335e7e7ccf1f
|
|
MD5 |
994bcbafd85443f57d9b4367e753d5d4
|
|
BLAKE2b-256 |
9a132e8f3646a934da30c142818a2795c0f0c1023b587ac386009ac588b0b23d
|
File details
Details for the file reminder_manager-0.0.1-py3-none-any.whl
.
File metadata
- Download URL: reminder_manager-0.0.1-py3-none-any.whl
- Upload date:
- Size: 15.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.13.0rc3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
08edad03be82fe7562dcfb54206df991aa366c13f8f03b821efc0121d9588cf2
|
|
MD5 |
a88f1310d9a952e7de0c3fdfc3706388
|
|
BLAKE2b-256 |
899191f7562ce4db3a6ec3756db503cc2b97917b7fd0cdaf44aef4c02a11b25a
|