Inspiration
Many purdue students face issues with being able to access all of their needed resources easily, as they are all in seperate apps/platforms. Our concept brings these things together into 1 central hub.
What it does
Boilerplate is an all in one website for accessing Purdue resources with near-infinite scalability and access to the Brightspace api using the Purdue login page and the session cookies saved by logging in. It supports cross-session validation and proxied api requests through the backend gateway supported by the NodeJS server either locally run or through a network.
Boilerplate's features currently include a map for displaying local crime recorded by West Lafayette campus' crime catalog, a tool using a trained dataset interpreter that displays the best dining location on the West Lafayette campus for your preferred food categories, a ChatGPT wrapper that is pre-prompted to answer Purdue-relevant questions, and a schedule for all due Brightspace items.
How we built it
We used webpage tools such as Flask, several languages, including Python and Javascript, and necessary packages to make our project work, such as BeautifulSoup, pandas, requests, etc.
We built a backend proxy for the purpose of COR bypassing and brightspace api integration. We take a user's login data, send it to a headless browser, go through valid checks and retrieve the duo code to return to the user. Once the duo code is validated, we redirect to our main page and the cookies that are used for the brightspace api are stored in the user's browser for future authentication and api access.
On our site, we have a modular layout currently containing a few things like a calendar for due items, a nearby crime locator, a chatgpt wrapper pre-prompted to only respond with Purdue related concepts, a dining hall suggestor based on current items within the halls, and a few more items.
We made the calendar just by contacting the Purdue brightspace api and returning all necessary items that are due and simply placing them on a calendar layout and assigning links to them.
We made the chatgpt wrapper through openai's API, where it could easily be called through our program. Google maps was integrated with the chatbot by using Model Context Protocols, which allow the model to access live data based on standardized instructions.
We made the crime locator by web scraping weekly crime reports from Purdue's website using requests and BeautifulSoup, then parsing into structured data. The Google Maps Geocoding API gets coordinates of incident locations and they're marked on an interactive map.
We made the dining hall suggestor with Playwright to web scrape each dish from every dining court menu. Then, using a text classification model trained to predict the genre of food based on the name. The model labels the dishes and scores each court according to how many dishes match the user's preferred food genre.
The integration of all modules was handled by a nodejs backend running the python files and sending the data back to the server to be sent back to the frontend, other than the Purdue AI which was hosted on a separate port and just displayed on the site (I couldn't be bothered to actually integrate it into the site.)
Challenges we ran into
SSL Authentication; Proxy Verification; LLM Training; Coding
Accomplishments that we're proud of
Creating a new method for accessing data in Brightspace, being able to access live data from an LLM, using web scraping tools to collect important data for the user, and integrating all of our work together.
What we learned
Webscraping; API development; Fullstack development; LLM modeling; Cross-Site authentication
What's next for Boilerplate
Friend system, more AI integration with our features, interactive campus map.
Log in or sign up for Devpost to join the conversation.