Track: Campus Impact

🍊 Inspiration

As a graduate student at Syracuse University, I've been in courses where I wanted to give feedback midway through the semester — but the only channel is end-of-semester evaluations. By then, it's too late to help me OR the professor. My teammate Ashish and I asked: why is this broken? And can we fix it in 24 hours?

🎯 What it does

OrangeVoice is an anonymous, AI-clustered, mid-semester feedback platform built specifically for Syracuse. It connects three stakeholders who all suffer from the current system:

  • 🎓 Students submit anonymous feedback per course, per cycle (weekly). Verified via Blackboard SSO, but no identifier is ever stored with feedback.
  • 👨‍🏫 Professors see AI-clustered themes, an Impact Score, and preserved individual voices — instead of reading hundreds of raw comments.
  • 🏛️ Deans monitor cross-course health but get alerts only after a fair 2-cycle escalation process.

The key innovation is procedural fairness: the professor gets Cycle 1 to hear feedback and address it. Only after Cycle 2, when a course still needs support, does the dean's dashboard flag it — with intentionally supportive language, not punitive.

🏗️ How we built it

Two-layer identity model: SU Blackboard SSO verifies enrollment (Layer 1), then OrangeVoice stores only {course, feedback, cycle} — no identifier (Layer 2). Prevents spam without storing identity.

AI-powered clustering: OpenAI GPT-4o mini analyzes all feedback per cycle to generate:

  • Impact Score (0-10, color-coded): weighted composite of sentiment (50%) + concern volume (30%) + severity language (20%)
  • Theme clusters grouped by student count and severity
  • Individual voice preservation for single-student concerns

2-cycle escalation logic: Dean alerts trigger only after 2 consecutive cycles of poor feedback, with percentage-based configurable thresholds (default 10% yellow, 20% orange, 30% red) that scale with class size.

Tech stack:

  • Frontend: Streamlit (Python)
  • AI: OpenAI GPT-4o mini
  • Visualization: Plotly
  • Storage: JSON (PostgreSQL in production)
  • Hosting: Streamlit Community Cloud
  • Auth (production): SU Blackboard SSO

🚧 Challenges we ran into

  • Anonymity framing: We initially wrote "no login" as our anonymity story, but realized judges (and users) would immediately worry about spam. We refactored to the two-layer identity model — SSO verifies at the edge, feedback stored anonymously.
  • UI contrast: First iteration had readability issues on colored alert cards. Fixed with explicit white text overrides on all colored backgrounds.
  • Score direction: We debated whether higher scores should mean more concerns or better health. We chose "higher = healthier" to align with grade-based mental models.
  • Escalation thresholds: Balancing false positives (too sensitive) vs missed signals (too tolerant). Solved with configurable per-department sliders.

🏆 Accomplishments we're proud of

  • Fully working end-to-end MVP with 3-role dashboards
  • Live deployment on Streamlit Community Cloud
  • Ethically defensible design: procedural fairness + preserved individual voices + human-in-the-loop
  • Clean, judge-friendly UI with SU Orange branding
  • 26 pre-seeded feedback entries demonstrating both a critical-alert path (IST 615) and an improvement-recognized path (IST 688)

🎓 What we learned

  • Feedback systems that only flag problems are incomplete — recognizing improvement is equally important
  • AI works best as a "compressor" (clustering, summarizing) rather than a decision-maker
  • Percentage-based thresholds scale better than fixed numbers across different class sizes
  • Two-layer identity models solve the "anonymous but not spammable" tension elegantly

🚀 What's next for OrangeVoice

  • Real Blackboard SSO integration for production authentication
  • Blackboard Roster API for automatic enrollment counts (removes manual input)
  • Weekly email digests via SendGrid so professors get proactive summaries
  • Multi-department dashboards with per-college calibration
  • Historical baseline calibration against past Syracuse course evaluation data

Built With

Share this project:

Updates

Submission history