Winter/Spring 2023 Product Project

CodeLab UC Davis
8 min readJul 9, 2023


Profficient is a web-based platform dedicated to providing UC Davis students with a time-saving and effortless experience in viewing and reviewing professors. By consolidating comprehensive and up-to-date reviews from students with firsthand experience, Profficient eliminates the need for sifting through outdated websites and forums.

🎤 With Profficient, students can embrace a new era of academic decision-making, where the quality of education is enhanced by informed professor selection.

The Team

Mohnish Gopi — Project Manager

Samiksha Krishnamurthy — Senior Designer

Sriram Suresh- Senior Developer

Nguyen Ho — Senior Developer


Jan — Jun 2022 | 16 weeks


  • Frontend — Figma, React, JavaScript, CSS, Chart.js
  • Backend — Express.js, Node.js, GoogleOAuth 2.0
  • Database — MongoDB
  • Project Maintenance — Jira, Notion, Github

The Project


1. Problem Identification and Analysis

During the initial stage of product development, we focused on identifying the problems and pain points faced by UCD students in selecting professors. Through in-depth analysis, surveys, and gathering feedback, we gained insights into the challenges students encountered when making informed decisions about their courses.

2. Empathize and Define

To better understand the needs and expectations of UCD students, we embarked on an empathetic journey. This involved conducting surveys, interviews, and gathering qualitative data to develop a deep understanding of the target audience. Based on the collected information, we defined the key requirements and expectations of students when it comes to reviewing and selecting professors.

3. Research and Ideation

Extensive research was conducted to explore existing platforms and solutions in the market. This included analyzing competitor offerings, studying user behavior, and identifying industry best practices. With a comprehensive understanding of the landscape, we brainstormed and ideated potential features and solutions that would address the identified pain points.

4. Market Validation and Target Market

Market validation was a crucial step to ensure the viability and demand for Profficient. We conducted extensive market research to identify our target market, understand their needs, and assess the market potential for our product. This helped us refine our positioning and tailor our features to cater specifically to UCD students.

5. Business Experiments and Roadmap

To further validate our product’s viability, we executed various business experiments. These experiments allowed us to test different hypotheses, gather data, and refine our strategy. Based on the results and insights gained from these experiments, we developed a product roadmap that outlined the planned features, timelines, and milestones for Profficient’s development.

The discovery phase encompassed activities such as problem analysis, user research, ideation, prototyping, validation, and market assessment. It formed the foundation for the subsequent stages of development.


Wireframes and Prototyping

Using the insights gathered during the research and ideation phase, we began the prototyping process. We started with idea sketches and low fidelity prototypes, gradually progressing to mid-fidelity and high-fidelity prototypes. These prototypes were then subjected to user testing, allowing us to validate the design choices, gather feedback, and iterate on the product to ensure its usability and effectiveness.


We started by sketching out various layouts for the professor profile page and discussion board. The first step was identifying the primary components of the pages, which was the professor rating, the professor name, a brief description of the professor, and ratings of the professor.

Low-Fidelity Wireframes

Next, we translated our sketches onto wireframes to further brainstorm possible layouts. We kept our main components in mind, while adding in a chart to track rating over time, and and including ratings by students in a separate card below the professor profile section. Since this was a simple wireframe, we wanted to represent the fun and friendly interface we were planning on introducing, using emojis, and emoticons to represent the professors and the subjects.

Mid-Fidelity Wireframes

We went through a massive rebrand from the low-fi to mid-fi stage, revamping the color scheme and building blocks of the site, from the buttons and simple CTAs to the way the number rating is represented, to the way the cards are laid out on the page.

High-Fidelity Prototype

We made major updates to the professor comparison page, revamping the way the professor comparisons were represented. Though we initially envisioned the comparisons to be in a matrix form, we ended up represented them in a bar graph form, with toggles to easily sort between professors and factors. The review page was also rebranded to fix the layout of the professor rating and individual student ratings.


The development of Profficient was an exciting journey that brought together the talents and skills of our team. We harnessed a range of technologies and tools to create a seamless and user-friendly platform for UCD students. Here’s a glimpse into our development process:


Our frontend development revolved around Figma, React, JavaScript, and CSS. Using Figma, we crafted intuitive and visually appealing user interfaces, ensuring a delightful experience for our users. React, with its component-based architecture, allowed us to build a responsive and interactive frontend. We utilized JavaScript, ****Chart.js and CSS to add functionality and style, making Profficient both visually appealing and user-friendly.


For the backend, we relied on Express.js and Node.js to power Profficient’s server-side functionality. These technologies provided a robust foundation for handling requests, managing authentication with Google OAuth 2.0, and ensuring seamless data flow between the frontend and the database.


MongoDB served as the backbone of Profficient’s database management. Its flexible document-oriented approach allowed us to store and retrieve data efficiently. We leveraged MongoDB to manage professor information, user reviews, and other relevant data, enabling students to access valuable insights easily.

Project Maintenance:

To ensure smooth project management and collaboration, we utilized Jira, Notion, and GitHub. Jira served as our central hub for tracking tasks, assigning responsibilities, and monitoring progress. Notion helped us stay organized with project documentation and sharing important resources. GitHub facilitated version control, code collaboration, and seamless deployment of updates.

Beta testing

After completing the development of our Minimum Viable Product (MVP), we proceeded to conduct alpha testing within our team to ensure the initial functionality and usability of Profficient. Once we were satisfied with the internal testing results, we moved on to the exciting phase of beta testing with the wider UC Davis student community. We were thrilled to receive over 100 responses from enthusiastic students who eagerly provided constructive feedback.

The beta testing phase proved to be invaluable in refining and enhancing Profficient. We carefully reviewed all the feedback received and identified common pain points and areas for improvement. The students’ input guided us in making multiple UI changes to better align the platform with their needs. We focused on optimizing user experience by addressing issues such as button placement, clarifying navigation, and overall ease of use.

The beta testing phase played a crucial role in making these important adjustments and ensuring that the platform truly meets the needs and expectations of its users. We are grateful to the UC Davis community for their enthusiastic engagement and look forward to launching the final version of Profficient with confidence, knowing that it has been thoroughly tested and improved based on the valuable input of its future users.


1. Limited Design and Time Resources:

  • Overcoming the challenge of limited design resources, such as graphic designers or UI/UX specialists, while aiming for visually appealing interfaces.
  • Managing time-consuming tasks like rebranding and its impact on the project timeline.

2. Backend Optimization and Database Challenges:

  • Overcoming challenges related to backend optimization, such as improving the performance of charting libraries like Chart.js.
  • Resolving issues with backend functionality, database connectivity, and authentication.

3. Managing Desire for Broader Changes:

  • Addressing the challenge of team members wanting to implement broader changes beyond the project’s scope or initial plans.
  • Finding a balance between innovation and project constraints, sometimes feeling like a group of explorers wanting to chart new territories while staying on the designated path.


1. Embracing the Power of Effective Planning:

  • Investing time in comprehensive planning and defining project goals, requirements, and timelines set the foundation for our success. Our detailed project roadmap, Agile methodologies and weekly sprints helped us stay organized and prioritize tasks effectively. Remember, failing to plan is like trying to build a website without Wi-Fi — it’s a recipe for disaster!

2. Emphasize User-Centric Design:

  • Designing a website without considering your users is like trying to teach a cat to fetch — it’s just not going to work! We learnt that we need to Prioritize user research, incorporate feedback, and make sure our website speaks their language. After all, our users are the true MVPs (Most Valuable Persons)!

3. Harness the Strengths of Each Team Member:

  • Teamwork makes the dream work! It was important to recognize and leverage the unique skills and strengths of each team member; this leads to a harmonious collaboration. It was like having a superhero squad with each member bringing their own superpower to the table.

4. Invest in Thorough Testing and Quality Assurance:

  • Prioritizing thorough testing and quality assurance helped us identify and resolve issues early on. We found out that UCD students have a knack for spotting things we never thought of. User feedback truly kept us on our toes and helped us improve the overall experience.

5. Effective Communication Fuels Productivity:

  • Maintaining open and transparent communication channels within the team was vital for effective collaboration. Regular team meetings, daily stand-ups, and clear documentation streamlined our workflow and minimized misunderstandings.

Closing Remarks ✨

In a nutshell, the Profficient project has been a wild ride! We’ve tackled the challenges faced by UC Davis students in finding the perfect professors and created a super cool platform. From nailing the planning phase to rocking the user-centric design, our team has hustled hard. We’ve learned so much along the way, like the power of teamwork, the importance of testin (thanks, eagle-eyed students!), and the need for open communication. We’re stoked about what we’ve achieved and can’t wait to see Profficient make waves in the UC Davis community. Cheers to an awesome future!



CodeLab UC Davis

CodeLab is a student-run software development and UX design agency at UC Davis.