Inspiration
Community college students can have trouble picking which classes to take in order to achieve their goal of transferring to a university. I am one of those students, as are most others. I created this project to assist students with an outline of classes to pick, to help them get started on planning their schedule before seeing a counselor.
What it does
Transfer AI parses assist.org API data to present to the user a list of colleges they can transfer from and to. It then uses AI to give the user advice based on the articulation agreement for the selected major to help them get started building their schedule.
How I built it
I found the API endpoints being used on assist.org's website through devtools, and wrapped the useful endpoints. I used the data to present the user with prompts to select the school to transfer to, the school to transfer from, and the major to transfer to using a fuzzy finder, and then used AI to parse articulation agreements and assist the user in planning their schedule.
Challenges I ran into
I needed to find an OpenAI crate which supported streaming, in order to achieve good user experience. I needed to understand the resulting data out of an API to be able to deserialize it into user recognizable form.
Accomplishments that I'm proud of
The suggestions are relatively accurate, and the app prints out a reference to the correct assist.org url to ensure the user can access a more authoritative source, following an AI accuracy disclaimer. Binaries are created by a github action and can be downloaded from github releases, with no dependencies other than default system dependencies.
What I learned
I learned about how streaming results directly through an HTTP request works, rather than waiting for the whole body to be downloaded.
What's next for Transfer AI
A GUI can be built to increase the user friendliness, or the project can be turned into an API which a website and numerous other tools could be built around.
Built With
- assist.org
- openai
- rust
Log in or sign up for Devpost to join the conversation.