StudyBuddy Scheduler is a smart and interactive planner designed to help students create effective study schedules based on their availability, workload, and deadlines. It offers multiple scheduling strategies and integrates motivational quotes to keep users inspired while they work.
This project was developed as part of a class assignment for the University of Maryland's INST326 course. It demonstrates skills in Python programming, web development, API integration, and data visualization.
Note: As per the project instructions, the entire application was built using Python and Python-based libraries only.
- User-Friendly Interface: A browser-based UI built with ReactPy for seamless user interaction.
- Customizable Scheduling: Input courses, deadlines, and estimated time commitments.
- Multiple Scheduling Strategies:
- Urgency-Based: Prioritizes courses with earlier deadlines.
- Even Distribution: Spreads study time evenly across available days.
- Pomodoro-Style: Creates 25-minute work blocks with 5-minute breaks.
- Downloadable Schedules: Export study plans in CSV or plain text format.
- Motivational Quotes: Displays motivational quotes fetched from the ZenQuotes API.
- Interactive Calendar View: Visualize schedules in a calendar format with progress tracking.
- Frontend: ReactPy
- Backend: FastAPI
- Data Visualization: Matplotlib
- API Integration: ZenQuotes API
- Testing: Pytest
Before you begin, ensure you have Python installed.
python -m venv venv
If this does not work, execute the following:
python3 -m venv venv
source venv/bin/activate
venv\Scripts\activate
pip install -r requirements.txt
python app.py
Open your browser and navigate to:
http://localhost:8000
This project demonstrates the following skills:
- Building a full-stack application using Python.
- Designing and implementing a browser-based UI with ReactPy.
- Integrating third-party APIs for real-time data (ZenQuotes API).
- Implementing multiple scheduling algorithms.
- Writing unit tests to ensure code reliability.
- Visualizing data using Matplotlib.
This project is licensed under the MIT License. See the LICENSE file for details.