Stock or upload
Pick from a built-in stock library under static/stock/
or upload a photo. Uploads are resized server-side to fast thumbnails.
Smart schedule
Next watering is computed from the last watering or the added date, with badges for overdue, due soon, or fine.
Sensible security
Hashed passwords, server-side sessions, and CSRF tokens on all POST forms. Cookies set with secure flags in production.
Screenshots




About PlantWeb
PlantWeb is a compact Flask app built for the CS50 - HarvardX final project. It tracks plants, photos, and watering schedules. Features include server-side sessions, CSRF protection, and image normalization for fast page loads. Data is stored in SQLite and the schema auto-migrates for small changes like optional email. Deploy-friendly on Render.
- Add plants with an uploaded photo or a stock image from
static/stock/
- Thumbnails generated with Pillow; album images are lazy-loaded with fixed dimensions
- “Water now” updates the last-watered date; badges highlight due/overdue
- Minimal CSRF guard and secure cookies in production