Inspiration
Problem: UofA students waste time searching across multiple platforms for course and professor information.
Key Issues:
- Reddit's disorganized course discussions are hard to navigate
- BearTracks lacks detailed quality assessments
- No unified platform for comprehensive course information
- Very limited information about accessibility accommodations available online
Impact: The fragmented nature of course information across multiple platforms results in students missing opportunities with high-quality instructors and inadequately assessing course difficulty levels. Additionally, students requiring accessibility accommodations face increased challenges due to the absence of a centralized resource detailing course-specific accessibility features and considerations.
Our Solution:
UAlberta CourseLens is a centralized platform designed to streamline the process of finding and evaluating courses at the University of Alberta. It aggregates course and professor information from multiple sources, providing students with a single, easy-to-use interface to make informed decisions about their academic journey. Additionally, it includes detailed accessibility information to ensure all students can find courses that meet their needs.
What it does
UAlberta CourseLens provides:
- Unified Course Information: Combines course details from RateMyProf, Reddit discussions, and other sources into one platform
- Professor Reviews and Ratings: Aggregates and organizes student feedback on professors, making it easier to evaluate teaching quality.
- Accessibility Accommodations: Highlights course-specific accessibility features, such as lecture recordings, flexible deadlines, and physical accessibility.
- Course Difficulty Insights: Provides insights into overall course difficulty based on student feedback.
How we built it
UAlberta CourseLens was engineered with precision and innovation to deliver a seamless experience for students. Here’s the breakdown:
- Data Collection: We aggregated course and professor data from multiple sources, including BearTracks and Reddit, using a combination of scraping tools and API integrations.
- Data Processing Pipeline: We designed a robust pipeline to clean, normalize, and structure the data, ensuring accuracy and reliability.
- Logical Calculations: Custom algorithms were developed to analyze the data, calculating course difficulty ratings, aggregating professor reviews, and identifying accessibility features.
- Web Development: The frontend was built with Next.js, delivering a fast, responsive, and dynamic user interface.
- Client-Server Architecture: A scalable backend processes user requests in real-time, ensuring smooth performance.
- AWS Lambda Functions: We deployed microservices using AWS Lambda to handle tasks like data aggregation and authentication, ensuring scalability and cost-efficiency.
- User Authentication: A secure signup/login system was implemented to provide personalized experiences while protecting user data.
- Online Database: User preferences and saved courses are stored in a secure database, enabling personalized recommendations and a seamless cross-device experience.
- Deployment: The platform is fully deployed and ready to scale, ensuring it can grow with its user base.
Challenges we ran into
- Data Aggregation: Combining data from multiple sources (RateMyProf, Reddit, etc.) into a unified format was challenging due to inconsistent data structures.
- Scraping Limitations: Reddit’s API rate limits and unstructured data made it difficult to extract meaningful course discussions.
- Accessibility Information: Gathering accurate and up-to-date accessibility details for each course required significant manual effort and collaboration with UofA services.
- Time Constraints: Balancing feature development with the limited time of the hackathon was a constant challenge.
Accomplishments that we're proud of
- Fully Deployed Web App: UAlberta CourseLens is live and fully functional, delivering real-time course and professor insights to UofA students.
- AWS Integration: We’ve successfully implemented AWS Lambda functions to create a scalable and efficient backend.
- Online Database: Our secure online database is operational, storing user data and enabling personalized experiences.
- Personalized Responses: The platform delivers tailored course recommendations and insights based on user preferences, making it a truly personalized tool.
- User-Centric Design: Every feature is designed with students in mind, ensuring an intuitive and seamless experience.
- Overcoming Challenges: We tackled complex technical hurdles, from data aggregation to deployment, and emerged with a robust, working solution.
What we learned
- Data Aggregation and Processing: How to collect, clean, and structure data from multiple sources for a unified platform.
- Scalable Architectures: Building and deploying microservices using AWS Lambda for efficient and scalable backend operations.
- User Authentication: Implementing secure signup/login systems and protecting user data.
- Personalization Algorithms: Developing algorithms to analyze user data and deliver tailored recommendations.
- Full-Stack Development: Gaining hands-on experience with Next.js, backend logic, and database management.
- Team Collaboration: Learning to work effectively as a team under tight deadlines and adapt to challenges.
- User-Centric Design: Designing with accessibility and usability in mind to create a seamless experience for students.
- Deployment and DevOps: Successfully deploying a live web app and ensuring its smooth operation.
What's next for UofACourseLens
- Expand Data Sources: Integrate more platforms like RateMyProfessors and UofA forums for richer insights.
- AI-Powered Recommendations: Use machine learning to deliver personalized course suggestions.
- Mobile App Development: Create a mobile version for on-the-go access.
- Enhanced Accessibility: Collaborate with UofA to include detailed accessibility information.
- User Accounts: Allow students to save courses and track academic progress.
- Community Features: Add discussion forums and peer reviews to foster student interaction.
- Partnerships: Work with UofA to integrate CourseLens into official resources.
- Gamification: Introduce badges and challenges to keep students engaged.
- Continuous Improvement: Regularly update the platform based on user feedback.
- Scaling to Other Universities: Adapt CourseLens for students at other institutions.
Built With
- amazon-web-services
- azure
- beautiful-soup
- nextjs
- postgresql
- python
- request
- tailwind
Log in or sign up for Devpost to join the conversation.