Inspiration
UW students constantly engage with a wealth of online resources. Navigating through various websites to find the right information can be overwhelming and time-consuming, especially for those looking to quickly access key insights.
The UW Student Guide was a way we wanted to make education and campus resources more accessible to everyone. By combining web scraping, summarization, and intuitive search functionality, we aim to provide a platform where users can quickly find concise, relevant summaries of UW-related content. This project is rooted in the belief that accessibility is key to enhancing the learning experience, empowering users to engage with the vast amount of information in an efficient and user-friendly way.
What it does
The UW Student Guide is a tool designed to streamline access to essential information from various University of Washington websites. By leveraging web scraping and advanced text summarization techniques, the platform collects and distills key content from UW’s resources, presenting it in an easy-to-read format.
Users can input a query related to UW topics, and the tool will search its database of summarized content, providing concise overviews of relevant pages. This reduces the time spent navigating multiple sites, helping users find the information they need quickly and efficiently. Whether it's academic guides, campus services, or student resources, the UW Student Guide makes accessing critical information easier for the entire UW community.
How we built it
We started by developing a web scraper to gather data from various University of Washington websites. This scraper collects the raw text from key pages, which we then process using a Perplexity summarization API to generate concise summaries and extract relevant keywords.
On the backend, we use Node.js and Express to handle API requests and connect to a MongoDB database, where the summarized content is stored.
The frontend is built with React, providing users with an intuitive interface to input their queries. When a query is submitted, the system retrieves matching summaries from the database and displays the results in a user-friendly format.
Challenges we ran into
Building the UW Student Guide came with its fair share of challenges. First, incorporating the backend functionality in the front end took a lot of time since we used a variety of languages and software that had troubles (whether it's related to cybersecurity or functionality). Designing a user-friendly interface that not only looked good but also made searching and retrieving summaries intuitive took considerable time and testing.
Node.js, React, and Express: The group had varied and limited experience developing a dynamic frontend with distinct client and server components
Prompt Engineering: The team had no experience with prompt engineering, thankfully Perplexity AI was an easy-to-use tool with extensive documentation
Full-Stack AI Application: The team had varied experience utilizing AI in a full-stack application so it took some ideating before we could begin.
Accomplishments that we're proud of
One of our biggest accomplishments is successfully developing a system that can scrape, process, and summarize information from a wide variety of University of Washington websites.
Another key achievement was the integration of Node.js, MongoDB, and React, allowing us to build a fully functional web application with a fast and intuitive user interface. We managed to create a responsive platform that handles user queries efficiently, providing relevant and summarized content quickly.
What we learned
Throughout the development of the UW Summarizer Project, we gained valuable insights into both technical and collaborative aspects of building a full-stack application. One key learning was how to effectively manage and process large amounts of data using web scraping techniques, while ensuring that the data collected was meaningful and structured for summarization.
We also deepened our understanding of AI-powered text summarization, learning how to fine-tune AI models to deliver concise and accurate summaries across a variety of topics. Integrating this AI with a database and making it accessible through a user-friendly interface gave us hands-on experience with building an end-to-end solution.
On the frontend side, we learned how to create a React-based user experience, ensuring responsiveness and ease of use across devices. Additionally, working with MongoDB and Node.js taught us valuable lessons in backend architecture, API development, and data management.
Beyond the technical skills, we learned the importance of problem-solving as a team, adapting to challenges as they arose, and refining our approach to create a polished final product. This project pushed us to think creatively and work efficiently, and we’re excited to apply these skills to future endeavors.
What's next for UW Student Guide
Improve the UI: With more time, we would have liked to allow for the user to select more options including search filters
Improve search: We were beginning to implement Vector Search in MongoDB, however we wanted to have a working proof-of-concept before embarking on more ambitious search algorithms
Improve Security: We had a working React front end which included Auth0 authentication for UW students, however that was left behind in favor of Express and MongoDB querying
Built With
- css
- javascript
- mongodb
- perplexity
- python
- react
- threading
- typescript
Log in or sign up for Devpost to join the conversation.