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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
|