Skip to content

jorgennonstad/ACIT4420_study_reminders

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Study Reminders 📚

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.


🔧 Installation

Clone the repository and install locally:

pip install .

For development mode (auto-reflects changes):

pip install -e .

Dependencies:

  • schedule (for scheduling tasks)

▶️ Usage

Run directly:

python main.py

Or, after installation, use the CLI command:

study_reminders

Modes

  • Scheduler mode (default): runs reminders at each student's preferred time.
  • Test mode: run all reminders immediately (can be toggled in main.py by calling run_once(sm)).

📂 Project Structure

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

📜 File Descriptions

  • 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.

📝 Example Files

Example students.json

[
    {"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"}
]

Example reminder output (console)

Sending reminder to alice@example.com:
Hello Alice! Don’t forget to study for Math 101 today.

Example reminder_log.txt

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.

ℹ️ Notes

This project was developed as part of ACIT4420-1 Problem-Solving with Scripting at OsloMet. It is intended for educational purposes only, not for production use.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages