Skip to content

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PawPal+ (Module 2 Project)

You are building PawPal+, a Streamlit app that helps a pet owner plan care tasks for their pet.

Scenario

A busy pet owner needs help staying consistent with pet care. They want an assistant that can:

  • Track pet care tasks (walks, feeding, meds, enrichment, grooming, etc.)
  • Consider constraints (time available, priority, owner preferences)
  • Produce a daily plan and explain why it chose that plan

Your job is to design the system first (UML), then implement the logic in Python, then connect it to the Streamlit UI.

What you will build

Your final app should:

  • Let a user enter basic owner + pet info
  • Let a user add/edit tasks (duration + priority at minimum)
  • Generate a daily schedule/plan based on constraints and priorities
  • Display the plan clearly (and ideally explain the reasoning)
  • Include tests for the most important scheduling behaviors

Getting started

Setup

python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
pip install -r requirements.txt

Suggested workflow

  1. Read the scenario carefully and identify requirements and edge cases.
  2. Draft a UML diagram (classes, attributes, methods, relationships).
  3. Convert UML into Python class stubs (no logic yet).
  4. Implement scheduling logic in small increments.
  5. Add tests to verify key behaviors.
  6. Connect your logic to the Streamlit UI in app.py.
  7. Refine UML so it matches what you actually built.

🖥️ Sample Output

Paste a sample of your app's CLI or Streamlit output here so a reader can see what a generated plan looks like:

# e.g.:
# Daily plan for Biscuit (Golden Retriever):
#   08:00 — Morning walk (30 min) [priority: high]
#   09:00 — Feeding (10 min) [priority: high]
#   ...

🧪 Testing PawPal+

# Run the full test suite:
pytest

# Run with coverage:
pytest --cov

Sample test output:

# Paste your pytest output here

📐 Smarter Scheduling

Fill in once you've implemented scheduling logic.

Feature Method(s) Notes
Task sorting e.g., by priority, duration
Filtering e.g., skip tasks if time runs out
Conflict handling e.g., overlapping time slots
Recurring tasks e.g., daily vs. weekly

📸 Demo Walkthrough

Describe your app in numbered steps so a reader can follow along without watching a video:

Screenshot or video (optional):

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages