← Home
← Back to portfolio

Product Requirements Document

Cultivate · Faculty AI Professional Development Dashboard

A personal learning environment for community college faculty

Version: v1.3 , Shipped · Status: Iteration in progress · March 21, 2026

Michelle B. · Digital Media Arts Faculty · Glendale Community College

1. Executive Summary

The Problem

Faculty pursuing serious professional development , AI literacy, community of practice leadership, new course development, conference submissions , have no purpose-built tool connecting daily tasks to long-term strategy.

General productivity tools (Notion, Google Docs, calendar apps) require too much overhead and don’t surface institutional context (deadlines, rubrics, scoring criteria) alongside actionable next steps.

The Solution

Cultivate is a zero-dependency personal productivity system built for a community college faculty member navigating a complex, multi-year professional development plan.

One always-accessible hub that surfaces the right information at the right time , resources, deadlines, news, PD roadmap, and active project workspaces in a single tool.

Cultivate replaces scattered notes, bookmarks, and calendar reminders with a purpose-built system designed around how faculty actually work , on a iPad on a plane, between classes, or during office hours.

2. Origin & Motivation

Cultivate started as a personal problem. Like many faculty members, I had professional development goals that were genuinely important to me , learning AI deeply enough to teach it well, keeping up with a fast-moving industry, building new tools for students , but no system that helped me actually make progress on them.

The scattered tools problem

My learning resources were everywhere , bookmarks across three browsers, PDFs in Google Drive, YouTube playlists, articles open in tabs I never closed. My notes were in Notion. My deadlines were in a calendar I barely checked. My project ideas were in a Notes app on my phone. Nothing talked to anything else.

When I sat down to work on my professional development, I spent half the time just finding the things I needed. The overhead of managing the system was eating the time I had to actually learn.

The offline problem

I often work offline , on planes, in spaces with unreliable wifi, on an iPad away from my desk. Most productivity tools assume a constant internet connection. Notion requires it. Google Docs requires it. Even most RSS readers require it.

I needed something that loaded fully offline, cached the news feed so I could read it without a connection, and didn’t lose my progress when the wifi dropped.

The phone problem

It is easy to pick up an iPad and scroll social media. It is not good for my mental health, and it doesn’t move me toward my goals. But it happens because it’s frictionless , the apps are right there, the content is endless, and the dopamine hit is immediate.

I wanted something that was just as easy to open as social media, but actually useful. Something that felt good to interact with , not a chore, not a productivity guilt trip , just a calm, well-designed space where I could read something interesting, check a box, or spend five minutes on something that mattered.

The ADHD factor

I have ADHD. That means context-switching is expensive, long lists are paralyzing, and anything that requires me to remember where I put something is already broken. I needed a tool that surfaced the right thing at the right time without requiring me to go looking for it.

Cultivate is designed around this reality: the most important deadline is always visible. The next action is always clear. The news feed refreshes itself. The progress bar shows me I’ve done something. It’s a system designed to work with how my brain actually works, not against it.

This is how the dashboard came to exist , not as a product requirement handed down from above, but as a personal solution to a real problem. The fact that it turned into something worth sharing with others is a side effect of building it honestly.

2.1 How It Works (Process)

My first AI build, honestly framed

Cultivate was my first real AI build, an experiment as much as a product. I still use it, but I am not actively maintaining it. What follows is how it actually works, not a roadmap for a polished system.

The process started from a teaching idea, not a tech stack. Cultivate is built as a connectivist personal learning environment, a PLE, where the network of people, tools, and sources is the point rather than a single closed app. Everything is a single set of linked HTML pages hosted on GitHub Pages, no backend and no build step.

It is offline-first because of how I work. I originally made it to use on an iPad while traveling, on planes and in places with no reliable wifi, so it loads fully offline and keeps working when the connection drops.

The news feed is the most involved piece. It pulls a curated 62-source RSS feed through:

From there it was iterative. I kept using it, found what was annoying or broken, and revised. That cycle is what carried it to v1.3.

3. Product Vision

3.1 Vision Statement

What if your professional development plan, learning resources, deadline calendar, and project workspaces all lived in one place , accessible anywhere, always current, always yours?

Cultivate is a single-faculty PLE (Personal Learning Environment) that is also a reference architecture: every variable can be changed to rebuild this tool for a different user, institution, or goal.

3.2 Product Goals

# Goal Metric
G1 Single source of truth , consolidate all PD resources, plans, and deadlines into one system All 6 pages functional; no broken links
G2 Deadline visibility , surface time-sensitive deadlines prominently with visual urgency indicators Warnings visible on hub + plan pages
G3 Persistent progress state , checkbox completion survives browser sessions without login or backend localStorage persists across sessions
G4 Zero-dependency portability , static HTML deployable to GitHub Pages with no build step, server, or login Works offline; deploys via git push
G5 Professional design system , consistent typography, color palette, and navigation across all 6 pages Shared :root CSS vars; identical header on all pages
G6 Adaptable architecture , key variables can be changed to rebuild for a different user or institution Documented variable map in Section 4.2

4. Users & Context

4.1 Primary User

v1.0 was designed for a single primary user. Understanding this persona is essential when adapting the system for a different audience.

Attribute Detail
Role Digital Media Arts Faculty, Glendale Community College (GCC), Maricopa District, Arizona
Goals Build AI Community of Practice at GCC; develop AI + student success tools; present at EdTech conferences
Pain Points No institutional tool to track PD; key deadlines scattered across email and calendar; no system for logging completed activities
Technical Context Uses Canvas LMS; accesses tool primarily via iPad and laptop; comfortable with HTML/GitHub Pages; uses Claude for AI-assisted development
Time Horizon March 2026 onward , ongoing professional development and tool building

4.2 Adaptation Notes , Who Else Could Use This?

This architecture is designed to adapt. Below are the key variables to change when rebuilding for a different user.

Variable This Product What to Change
Audience Single faculty member Team, department, student cohort, new hire cohort
Goal type Professional development Onboarding, course completion, career readiness, job search
Time horizon Ongoing / multi-year Semester, academic year, program duration
Deadlines Conference CFPs, course development Course due dates, application deadlines, cohort milestones
Resource types Courses, videos, articles, conferences Tutorials, job postings, portfolio prompts, mentors
Persistence localStorage (single user, no login) If multi-user: add auth + database backend
Hosting GitHub Pages (free, static) Same, or LMS integration (Canvas), or internal server

5. System Architecture

5.1 Page Map

Cultivate is 6 interconnected HTML pages. Every page shares the same design system, header pattern, and navigation. Each page is independently loadable.

Page File Purpose Key Features
AI Resources Hub index.html Central dashboard. Entry point for all sections. News feed, resource cards, progress bar, daily reading buttons, simplified PD dashboard link
PD Plan pd-plan.html 9-priority roadmap with real target dates. Checkbox tasks, progress bar, collapsible phases, deadline badges
Mesa Summit mesa-conference.html Single-conference proposal page. Date urgency banner, session abstract, learning outcomes, prep list
PD Log completed.html Activity log fed by hub checkboxes. Auto-populated from hub, category badges, CSV export, summary stats
UX Toolkit ux_toolkit.html Reference page for UX and design tools. Tool stack cards, vocabulary reference, practice projects, newsletters
Claude Context Prompt Footer of index.html Collapsible prompt block in the page footer. One-tap copy button. Paste into a new Claude chat to restore full project context without re-explaining tools, goals, preferences, and design system. Collapsible toggle + copy button

5.2 Technology Stack

6. Design System

6.1 Typography

All pages use the same two-font system, matching the broader site typography:

Role Font Usage
Display / Headings Lora (serif) Page titles, card headings, wordmark, section eyebrows
Body / UI DM Sans (sans-serif) Body text, labels, navigation, buttons, form elements
Base size 15px All pages use 15px as the root font size

6.2 Color Palette

All 6 pages share identical design tokens defined in a :root CSS block. Changing any token updates the entire site.

Token Value Usage
--plum #7a5080 Primary brand color , headers, active states, buttons, nav links
--sage #6b8f6e Secondary , Student tool (Render), success states, secondary actions
--rose #c4929e Accent , italic wordmark text, decorative botanical elements
--gold #b8956a Warning/highlight , deadline alerts, demo badges
--paper #faf7f2 Background , main page background
--warm #f2ebe4 Surface , header background, card hover states
--ink #3a2e3f Text , primary body text
--muted #8a7e7a Secondary text , taglines, captions, helper text

7. RSS News Feed

7.1 Overview

The AI Resources Hub includes a live RSS news feed drawing from 51 curated sources. This is one of the most technically complex features of the tool.

7.2 Architecture

7.3 Proxy Waterfall

Because RSS feeds don’t support CORS, the tool uses a three-proxy waterfall:

If all three fail for a given source, that source is skipped silently. The feed degrades gracefully.

8. Open Questions & Future Directions

Question Priority Notes
Should Cultivate be adapted for team or departmental use? Medium Would require auth + backend. Current single-user localStorage model doesn’t scale to multi-user.
Can the RSS classifier be improved with AI? Medium Current classifier is keyword-based. Claude API could improve article routing accuracy.
Should the PD Log support richer activity types? Low Currently text + category. Could expand to include hours, evidence links, reflection prompts.
Can Cultivate serve as a template for the AI CoP at GCC? Medium The architecture is intentionally adaptable. A stripped-down version could be shared with CoP members.
Should there be a mobile-optimized view? Low Currently responsive but not mobile-first. RSS feed and resource cards work on iPad. Phone experience could be improved.
Should Cultivate be converted to a Claude artifact for easier in-place updates? Medium Current workflow requires downloading files, editing in Claude, and re-uploading to GitHub Pages. An artifact version could include per-section “update” buttons that let Claude add links, courses, or resources in place without the download/upload cycle. Persistent artifact storage (window.storage API) would preserve state across sessions. Same conversion path as Render’s demo version , swap localStorage to artifact storage, ensure fonts and external assets work in the sandbox. Would make Cultivate feel more like a living tool and less like a static site.
Should Cultivate support a quick-save bookmarking feature for resources found mid-session? High Current model requires uploading the HTML file to Claude to add any resource. A quick-save input (title + URL + category) would let Michelle bookmark something found mid-session without a GitHub round-trip. Three persistence options explored: (1) localStorage , browser-specific, works offline, gone if browser data cleared; (2) Google Sheets as a lightweight backend , form on the page writes a new row via API, readable from any device, no new account needed; (3) Airtable , same pattern, slightly more structured, but adds a dependency. Notion is also a candidate. Google Sheets is the lowest-friction starting point given existing Google ecosystem use.

9. Roadmap

Milestone Status Notes
v1.0 , Core tool shipped ✓ Complete All 6 pages functional. RSS feed live. localStorage persistence working. GitHub Pages deployed.
v1.3 , RSS hardening + source cleanup ✓ Complete Offline RSS cache, keyword classifier refinement, 51-source pool, broken link fixes.
v1.4 , PD Log improvements In progress March 21, 2026: Videos section removed (content preserved); Daily Reading pill button strip added (Medium, Substack, NYT, Atlantic, Chronicle, EDUCAUSE, Nielsen Norman, TLDR, YouTube, EDUCAUSE Webinars); RSS trimmed from 62 to 51 sources (NYT, Atlantic, Chronicle, EDUCAUSE Review, NNG, EdSurge moved to buttons); PD plan section on index simplified to dashboard banner; AFIT added to conferences and CoP sections; Coursera AR/VR course added to Trainings.
v2.0 , AI integration Planned Claude API integration for article summarization, resource recommendations, and PD plan generation.
Adaptation guide Planned Documentation for rebuilding this tool for a different user, institution, or goal context.

Appendix: Key References