<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Tomi</title>
    <description>The latest articles on DEV Community by Tomi (@tohmze).</description>
    <link>https://dev.to/tohmze</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3504303%2Fd0e7691c-9c19-4b78-acd8-6db0d6f3035b.jpeg</url>
      <title>DEV Community: Tomi</title>
      <link>https://dev.to/tohmze</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tohmze"/>
    <language>en</language>
    <item>
      <title>AI-RateMyProfessors App</title>
      <dc:creator>Tomi</dc:creator>
      <pubDate>Thu, 25 Sep 2025 02:59:41 +0000</pubDate>
      <link>https://dev.to/tohmze/ai-ratemyprofessors-app-nfp</link>
      <guid>https://dev.to/tohmze/ai-ratemyprofessors-app-nfp</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/heroku-2025-08-27"&gt;Heroku "Back to School" AI Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftgnhgmpnf1sj1qppzc04.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftgnhgmpnf1sj1qppzc04.png" alt="ai-reg-rmp" width="800" height="227"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;I built an &lt;strong&gt;AI-Powered RateMyProfessors Platform&lt;/strong&gt; that transforms how students choose courses and how educators understand their teaching impact using real data from RateMyProfessors.com.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For Students:&lt;/strong&gt; The platform provides intelligent course selection assistance by analyzing professor ratings, reviews, and sentiment patterns across student comments. Users can search for professors and get comprehensive AI-powered insights about teaching styles, course difficulty, and overall satisfaction.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For Educators:&lt;/strong&gt; The same interface allows professors to search for themselves and get an analysis of their students' feedback, helping them understand patterns in student responses and identify areas for improvement.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Problems Solved&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Students struggle to efficiently parse through hundreds of professor reviews.&lt;/li&gt;
&lt;li&gt;Educators lack tools to systematically analyze student feedback at scale.&lt;/li&gt;
&lt;li&gt;No existing platform provides AI-driven insights from RateMyProfessors data.&lt;/li&gt;
&lt;li&gt;Manual sentiment analysis of student comments is time-consuming and subjective.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Category
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Student Success&lt;/strong&gt; - Quick and accurate information for courses.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Educator Empowerment&lt;/strong&gt; - Data-driven insights for teaching improvement.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;🎓Try it Out:&lt;/strong&gt; &lt;a href="https://smart-rate-my-professor-769b3e5f8cb6.herokuapp.com/" rel="noopener noreferrer"&gt;https://smart-rate-my-professor-769b3e5f8cb6.herokuapp.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When testing, ensure to include the full name of the professor and the university.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Student Use Case Demo&lt;/strong&gt;&lt;br&gt;
&lt;iframe src="https://player.vimeo.com/video/1121725328" width="710" height="399"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Professor Use Case Demo&lt;/strong&gt;&lt;br&gt;
&lt;iframe src="https://player.vimeo.com/video/1121727783" width="710" height="399"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Source code: &lt;br&gt;
&lt;a href="https://github.com/tohmze/ai-ratemyprofessor" rel="noopener noreferrer"&gt;Chat Interface&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/tohmze/ratemyprofessors-mcp" rel="noopener noreferrer"&gt;MCP Server Implementation&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Used Heroku AI
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Incorporated Heroku AI Features&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;MCP Servers:&lt;/strong&gt; I implemented a custom Model Context Protocol (MCP) server using TypeScript, hosted on Heroku. This server acts as a specialized tool for AI agents, providing them with real-time access to RateMyProfessors data. The MCP server ensures that the AI agents have real-time context for each query, which is crucial for delivering accurate and relevant responses.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Managed Inference and Agents:&lt;/strong&gt; By using MCP servers, I leveraged Heroku’s Managed Inference and Agents platform. This add-on orchestrated my AI agent, handled the behind-the-scenes complexity, and let them access my custom tool without me managing the infrastructure. The platform used the MCP to execute the functions from my server, integrating my logic into the agent’s workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Technical Implementation
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Architecture&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft4aax734qldnz9v5dglk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft4aax734qldnz9v5dglk.png" alt="system-architecture" width="800" height="220"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;User Request Initiation:&lt;/strong&gt; User submits query through the Chat Interface server.&lt;br&gt;
&lt;strong&gt;Request Routing:&lt;/strong&gt; Chat Interface server forwards the request to the Heroku-managed Inference and Agents server.&lt;br&gt;
&lt;strong&gt;Tool Invocation:&lt;/strong&gt; AI agent identifies the need for external data and invokes the appropriate MCP (Model Context Protocol) server tool.&lt;br&gt;
&lt;strong&gt;External API Call:&lt;/strong&gt; MCP server executes HTTP request to ratemyprofessors.com API.&lt;br&gt;
&lt;strong&gt;Data Retrieval:&lt;/strong&gt; ratemyprofessors.com returns structured response data to MCP server.&lt;br&gt;
&lt;strong&gt;Response Processing:&lt;/strong&gt; MCP server passes data back to AI agent, which processes and contextualizes the information.&lt;br&gt;
&lt;strong&gt;Response Generation:&lt;/strong&gt; AI agent generates informed response incorporating the retrieved data.&lt;br&gt;
&lt;strong&gt;Response Delivery:&lt;/strong&gt; Final response is transmitted back through the Chat Interface server to the user.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tools and Languages&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; HTML, CSS, JavaScript&lt;br&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; Node.js, TypeScript&lt;br&gt;
&lt;strong&gt;AI:&lt;/strong&gt; Managed Inference and Agents(LLMs)(I used Claude 3-7-Sonnet Model)&lt;br&gt;
&lt;strong&gt;Infrastructure:&lt;/strong&gt; Heroku (hosting)&lt;br&gt;
&lt;strong&gt;MCP Server&lt;/strong&gt;: Typescript&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>herokuchallenge</category>
      <category>webdev</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
