# 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:
```bash
git clone https://github.com/yourusername/reminder-manager.git
```
2. Create and activate a virtual environment:
```bash
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
```
3. Install dependencies:
```bash
pip install -r requirements.txt
```
### Project Structure
```
LIBRARY/
├── services/
│ ├── __init__.py
│ └── reminder_manager.py
├── models/
│ ├── __init__.py
│ └── reminder.py
└── main.py
```
### Basic Usage
```python
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:
```python
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
```python
# 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
```python
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
```python
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
Raw data
{
"_id": null,
"home_page": "https://github.com/yourusername/reminder_manager",
"name": "reminder-manager",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6.0",
"maintainer_email": null,
"keywords": "python, reminder, pregnancy, healthcare, hospital",
"author": "Iga Martin",
"author_email": "<your-actual-email@example.com>",
"download_url": "https://files.pythonhosted.org/packages/9a/13/2e8f3646a934da30c142818a2795c0f0c1023b587ac386009ac588b0b23d/reminder_manager-0.0.1.tar.gz",
"platform": null,
"description": "\r\n# Reminder Manager\r\n\r\nA Python-based reminder management library that helps track and manage reminders, with special features for antenatal care scheduling.\r\n\r\n## Features\r\n\r\n### Core Features \u2713\r\n- Basic reminder creation and storage\r\n- Reminder retrieval by ID\r\n- Category-based filtering\r\n- Optional voice notifications\r\n- JSON-based persistence\r\n\r\n### Medical Features \ud83d\udea7\r\n- Antenatal care appointment scheduling\r\n- High-risk pregnancy tracking\r\n- Medical reminder categorization\r\n\r\n### Management Features \u23f3\r\n- Reminder completion tracking\r\n- Overdue reminder detection\r\n- Priority-based scheduling\r\n- Recurring reminders\r\n\r\n## Getting Started\r\n\r\n### Installation\r\n\r\n1. Clone the repository:\r\n```bash\r\ngit clone https://github.com/yourusername/reminder-manager.git\r\n```\r\n\r\n2. Create and activate a virtual environment:\r\n```bash\r\npython -m venv .venv\r\nsource .venv/bin/activate # On Windows: .venv\\Scripts\\activate\r\n```\r\n\r\n3. Install dependencies:\r\n```bash\r\npip install -r requirements.txt\r\n```\r\n\r\n### Project Structure\r\n```\r\nLIBRARY/\r\n\u251c\u2500\u2500 services/\r\n\u2502 \u251c\u2500\u2500 __init__.py\r\n\u2502 \u2514\u2500\u2500 reminder_manager.py\r\n\u251c\u2500\u2500 models/\r\n\u2502 \u251c\u2500\u2500 __init__.py\r\n\u2502 \u2514\u2500\u2500 reminder.py\r\n\u2514\u2500\u2500 main.py\r\n```\r\n\r\n### Basic Usage\r\n\r\n```python\r\nfrom services.reminder_manager import ReminderManager\r\nfrom models.reminder import Reminder\r\n\r\n# Initialize the reminder manager\r\nmanager = ReminderManager()\r\n\r\n# Create a new reminder\r\nreminder = Reminder(\r\n title=\"Doctor's Appointment\",\r\n description=\"Annual checkup\",\r\n due_date=\"2024-04-01\"\r\n)\r\n\r\n# Add the reminder\r\nmanager.create_reminder(reminder)\r\n```\r\n\r\n## Features in Development\r\n\r\n- [ ] Persistent storage using JSON\r\n- [ ] Voice notifications\r\n- [ ] Antenatal care scheduling\r\n- [ ] Reminder categories\r\n\r\n## Contributing\r\n\r\nFeel free to submit issues and enhancement requests.\r\n\r\n## License\r\n\r\nThis project is licensed under the MIT License - see the LICENSE file for details.\r\n\r\n## Authors\r\n\r\n- Your Name\r\n\r\n## Prerequisites\r\n- Python 3.6 or higher\r\n- pip (Python package installer)\r\n- Virtual environment (recommended)\r\n- Required packages:\r\n - datetime\r\n - json\r\n - typing (for type hints)\r\n - pathlib (for file handling)\r\n\r\n## Configuration\r\nThe ReminderManager supports extensive configuration:\r\n\r\n```python\r\nmanager = ReminderManager(\r\n storage_path=\"custom_reminders.json\", # Default: reminders.json\r\n voice_enabled=True, # Default: True\r\n backup_enabled=True, # Default: False\r\n backup_frequency=24, # Hours between backups\r\n date_format=\"%Y-%m-%d\", # Default ISO format\r\n categories=[ # Default categories\r\n \"medical\",\r\n \"personal\",\r\n \"work\",\r\n \"antenatal\"\r\n ]\r\n)\r\n```\r\n\r\n## API Reference\r\n\r\n### ReminderManager Methods\r\n```python\r\n# Create a new reminder\r\ncreate_reminder(reminder: Reminder) -> int\r\n\"\"\"Creates a new reminder and returns its ID\"\"\"\r\n\r\n# Get a specific reminder\r\nget_reminder(reminder_id: int) -> Reminder\r\n\"\"\"Retrieves a reminder by its ID. Raises IndexError if not found\"\"\"\r\n\r\n# Get reminders by category\r\nget_reminders_by_category(category: str) -> List[Reminder]\r\n\"\"\"Returns all reminders in the specified category\"\"\"\r\n\r\n# Get overdue reminders\r\nget_overdue_reminders() -> List[Reminder]\r\n\"\"\"Returns all reminders past their due date\"\"\"\r\n\r\n# Update reminder\r\nupdate_reminder(reminder: Reminder) -> bool\r\n\"\"\"Updates an existing reminder. Returns success status\"\"\"\r\n\r\n# Delete reminder\r\ndelete_reminder(reminder_id: int) -> bool\r\n\"\"\"Deletes a reminder. Returns success status\"\"\"\r\n```\r\n\r\n### Reminder Properties\r\n```python\r\nreminder = Reminder(\r\n title=\"Example\", # Required\r\n description=\"Description\", # Required\r\n due_date=\"2024-04-01\", # Required, ISO format\r\n category=\"medical\", # Optional\r\n priority=1, # Optional (1-5)\r\n recurring=False, # Optional\r\n recurring_interval=None, # Optional (days)\r\n completed=False, # Optional\r\n tags=[\"important\"], # Optional\r\n attachments=[], # Optional\r\n notifications=True # Optional\r\n)\r\n```\r\n\r\n## Error Handling\r\n```python\r\ntry:\r\n reminder = manager.get_reminder(reminder_id)\r\nexcept IndexError:\r\n print(\"Reminder not found\")\r\nexcept ValueError:\r\n print(\"Invalid reminder format\")\r\nexcept FileNotFoundError:\r\n print(\"Storage file not found\")\r\nexcept json.JSONDecodeError:\r\n print(\"Corrupt storage file\")\r\nexcept Exception as e:\r\n print(f\"Unexpected error: {str(e)}\")\r\n```\r\n\r\n## Best Practices\r\n- Always use try-except blocks when accessing reminders\r\n- Regularly backup the reminders.json file\r\n- Use ISO format for dates (YYYY-MM-DD)\r\n- Implement proper error handling\r\n- Use meaningful reminder titles and descriptions\r\n- Categorize reminders appropriately\r\n- Set realistic due dates\r\n- Keep the storage file in a secure location\r\n- Regular maintenance of old/completed reminders\r\n- Document any custom implementations\r\n\r\n## Troubleshooting\r\nCommon issues and solutions:\r\n\r\n### Import Issues\r\n- **Problem**: Module not found errors\r\n - Solution: Check PYTHONPATH\r\n - Solution: Verify __init__.py files exist\r\n - Solution: Use absolute imports\r\n\r\n### Storage Issues\r\n- **Problem**: File not found\r\n - Solution: Check file permissions\r\n - Solution: Verify path exists\r\n - Solution: Create directory if missing\r\n\r\n### Date Format Issues\r\n- **Problem**: Invalid dates\r\n - Solution: Use ISO format (YYYY-MM-DD)\r\n - Solution: Validate dates before saving\r\n - Solution: Handle timezone differences\r\n\r\n### Performance Issues\r\n- **Problem**: Slow loading with many reminders\r\n - Solution: Implement pagination\r\n - Solution: Archive old reminders\r\n - Solution: Use database instead of JSON\r\n\r\n## Future Enhancements\r\n### Short Term (3-6 months)\r\n- Web interface for reminder management\r\n- Mobile app integration\r\n- Calendar sync features\r\n- Multi-user support\r\n\r\n### Medium Term (6-12 months)\r\n- AI-powered scheduling suggestions\r\n- Natural language processing for reminder creation\r\n- Advanced recurring reminder patterns\r\n- Integration with popular calendar services\r\n\r\n### Long Term (12+ months)\r\n- Distributed system support\r\n- Blockchain-based reminder verification\r\n- Machine learning for priority optimization\r\n- Real-time collaboration features\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A reminder management system",
"version": "0.0.1",
"project_urls": {
"Homepage": "https://github.com/yourusername/reminder_manager"
},
"split_keywords": [
"python",
" reminder",
" pregnancy",
" healthcare",
" hospital"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "899191f7562ce4db3a6ec3756db503cc2b97917b7fd0cdaf44aef4c02a11b25a",
"md5": "a88f1310d9a952e7de0c3fdfc3706388",
"sha256": "08edad03be82fe7562dcfb54206df991aa366c13f8f03b821efc0121d9588cf2"
},
"downloads": -1,
"filename": "reminder_manager-0.0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a88f1310d9a952e7de0c3fdfc3706388",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6.0",
"size": 15249,
"upload_time": "2024-12-12T15:00:36",
"upload_time_iso_8601": "2024-12-12T15:00:36.540547Z",
"url": "https://files.pythonhosted.org/packages/89/91/91f7562ce4db3a6ec3756db503cc2b97917b7fd0cdaf44aef4c02a11b25a/reminder_manager-0.0.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9a132e8f3646a934da30c142818a2795c0f0c1023b587ac386009ac588b0b23d",
"md5": "994bcbafd85443f57d9b4367e753d5d4",
"sha256": "244e7afc7b6f70ef5101b25f936f28fac5bf993a4c0d012a6283335e7e7ccf1f"
},
"downloads": -1,
"filename": "reminder_manager-0.0.1.tar.gz",
"has_sig": false,
"md5_digest": "994bcbafd85443f57d9b4367e753d5d4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6.0",
"size": 13368,
"upload_time": "2024-12-12T15:00:43",
"upload_time_iso_8601": "2024-12-12T15:00:43.718001Z",
"url": "https://files.pythonhosted.org/packages/9a/13/2e8f3646a934da30c142818a2795c0f0c1023b587ac386009ac588b0b23d/reminder_manager-0.0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-12 15:00:43",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "yourusername",
"github_project": "reminder_manager",
"github_not_found": true,
"lcname": "reminder-manager"
}