Inspiration
Education is a journey of discovery - new knowledge, new perspectives, and new ways of thinking. But one of the hardest parts of this journey is finding the right guide. Every student learns differently, and every TA teaches differently. TAMatch transforms the frustrating search for a compatible TA into seamless discovery. Instead of guessing, students can instantly uncover the TA who best supports their learning. No more wasted time—just the right match, right away. Learning should be about growth, and TAMatch helps students discover their ideal guide from the start.
What it does
TAMatch is a smart matching platform that connects students with TAs based on learning and teaching styles.
🔍: Personalized quizzes: Students and TAs discover their learning and teaching styles.
📚: See TAs for Your Courses: View a list of TAs teaching the courses you're enrolled in.
✨: Compatibility Scores: See each TA’s compatibility score, which shows how well their teaching style aligns with your personal learning style.
⏱️: Save Time: No more attending multiple tutorials to find the right fit. Discover your ideal TA right away!
🎯: Efficient Learning: Focus on what matters most - your education - by connecting with the TA that can help you learn best.
How we built it
Our project was built using React for the frontend and Node.js with Express for the backend. We used PostgreSQL as our database to store user preferences, quiz results, and potential matches. For our frontend, we designed an interactive quiz using React Hooks (useState, useEffect) to collect user responses dynamically. The UI is styled with CSS to ensure a smooth user experience. As for our backend, we used Node.js and Express to handle quiz submissions and TA-student matching logic. We used PostgreSQL to store user responses and TA preferences. The backend processes the quiz data and calculates the best TA matches for each student. The system compares learning styles and teaching preferences to generate a compatibility score and suggest the most suitable TAs.
Challenges we ran into
1) Connecting to PostgreSQL Initially, setting up and integrating the database was tricky due to authentication issues. We ran into role permission errors and had to manually create the correct database roles. Using environment variables (.env) to securely store database credentials helped streamline the process.
2) State Management in React Managing quiz progress and user authentication in a single-page React app required careful state management. Using useState and conditional rendering helped us handle different user flows efficiently.
3) Quiz Logic and Data Processing Storing quiz responses, calculating percentage matches, and determining the best TA for each student required complex logic.
We also optimized our matching algorithm to ensure accurate results based on user preferences.
Accomplishments that we're proud of
It was pretty tough configuring some of the routing logic, as we were all relatively new to the languages and frameworks that we were using. But, that meant it was a great learning opportunity, and we got everything working in the end! Also, configuring the algorithm to match students to TAs was tricky, albeit fun, and a very rewarding experience to see it through to completion in the end.
What we learned
A lot of new languages, frameworks, and debugging skills!
What's next for TAMatch
Maybe getting UofT to use it.. :)
Log in or sign up for Devpost to join the conversation.