Inspiration
As students, we know how much a great professor can change the learning experience. Course catalogs usually list the course content, but not the professor quality. Sites like RateMyProfessor are fragmented and don’t always tie directly to course IDs. We wanted to create a simple, one-page tool that helps students instantly find the best professor for any given course. One with ratings, reviews, and a summarized teaching style.
What it does
ProfPickr lets you enter a course ID (e.g., CS101), fetches all the professors who teach that course, and automatically identifies the highest-rated professor. It then shows:
- The professor’s name and rating
- A short AI-generated summary of their teaching style
- Real student reviews
The goal is to make course selection faster, smarter, and less stressful.
How we built it
- Backend: Built with FastAPI for handling API requests. It queries MongoDB to fetch professors and their reviews, then selects the top-rated professor.
- Database: MongoDB stores courses (with associated professors) and professor profiles (ratings, reviews, summaries) in simple JSON-like collections.
- Frontend: React-based single-page app styled with Tailwind CSS. It includes a clean search bar and displays results in a modern, minimal UI.
- AI Summary: We plan to use Gemini API (or similar LLM) to generate professor summaries from raw student reviews.
Challenges we ran into
- Getting the data structure right so that courses link cleanly to professors.
- Setting up and syncing tools (FastAPI, MongoDB, React) as first-timers in some of these frameworks.
- Ensuring the frontend/backend integration is seamless (CORS, API design, error handling).
- Making the design simple but still polished and modern.
Accomplishments that we're proud of
- Designing a clear and consistent database schema for courses and professors.
- Getting a functional FastAPI backend that can return results through an endpoint.
- Building a responsive, one-page frontend that feels simple and intuitive.
- Writing a detailed setup guide so new collaborators can quickly onboard.
- Turning a common student pain point into a working prototype.
What we learned
- How to structure and connect a full-stack app using FastAPI, MongoDB, and React.
- The importance of clean data design to make queries efficient.
- How to manage project setup with virtual environments,
.envfiles, and Git workflows. - The value of clear documentation for collaboration.
- How frontend design choices can make or break usability.
What's next for ProfPickr
- Expanding the database to cover more courses and professors.
- Fully integrating AI (Gemini API) to dynamically summarize reviews.
- Adding advanced filters (e.g., “most approachable,” “easiest grader,” “best for beginners”).
- Building user accounts so students can contribute reviews directly.
- Deploying the app so any student can access it online, not just locally.
Log in or sign up for Devpost to join the conversation.