A Python package that automates the generation and distribution of personalized study reminders for students. It manages student data, generates course-specific reminders, simulates sending them, logs events, and schedules delivery based on preferred times.
Clone the repository and install locally:
pip install .For development mode (auto-reflects changes):
pip install -e .Dependencies:
schedule(for scheduling tasks)
Run directly:
python main.pyOr, after installation, use the CLI command:
study_reminders- Scheduler mode (default): runs reminders at each student's preferred time.
- Test mode: run all reminders immediately (can be toggled in
main.pyby callingrun_once(sm)).
study_reminders/
├── __init__.py
├── students_manager.py # Manages student data (JSON)
├── reminder_generator.py # Generates personalized reminders
├── reminder_sender.py # Simulates sending reminders (prints)
├── logger.py # Logs reminders to a file
├── scheduler.py # Schedules reminders using `schedule`
├── students.json # Example student data
└── reminder_log.txt # Log file for sent reminders
main.py # Entry script
setup.py # Installation config
MANIFEST.in # Ensures JSON/log files are included
README.md # Documentation
- students_manager.py → Load, add, remove, list students from
students.json. - reminder_generator.py → Generate a personalized reminder string for a student.
- reminder_sender.py → Simulate sending reminder (prints to console).
- logger.py → Append reminder logs with timestamps to
reminder_log.txt. - scheduler.py → Schedule reminders for each student at their preferred time.
- students.json → Example dataset with dummy students.
- reminder_log.txt → Keeps a log of all reminders sent.
- main.py → Integrates all modules; runs either scheduler or test mode.
[
{"name": "Alice", "email": "alice@example.com", "course": "Math 101", "preferred_time": "08:00"},
{"name": "Bob", "email": "bob@example.com", "course": "Physics 101", "preferred_time": "09:00"}
]Sending reminder to alice@example.com:
Hello Alice! Don’t forget to study for Math 101 today.
2025-10-01 08:00:01: Sent to Alice: Hello Alice! Don’t forget to study for Math 101 today.
2025-10-01 09:00:01: Sent to Bob: Hi Bob! Keep working on Physics 101 assignments today.