Inspiration

Every term meant manually digging through course outlines for assessment dates, weightings, and topics, then formatting them into a checklist. We built Spindle to automate that.

What it does

Spindle is an AI-powered course planning tool that automatically extracts structure from UNSW course outlines and turns them into actionable plans. Instead of manually building checklists for every course each term, Spindle parses your course outlines, pulls out assessments, deadlines, and weekly tasks, and generates an organised plan you can track against.

How we built it

We built the frontend in React with TypeScript and an Express/TypeScript backend, using Supabase for data storage and auth. Course data is scraped and processed through a Python pipeline (Spindle-Ops) with psycopg2, pulling from DevSoc's GraphQL API. We used Gemini to extract structured data from messy course outlines and produce clean, structured JSON.

Challenges we ran into

The biggest challenge was reliably extracting structured data from course outlines that vary wildly in format and layout. Getting the LLM pipeline to consistently return well-formed JSON took a lot of prompt iteration and validation, and is something we are still working on.

Accomplishments that we're proud of

Retrieving UNSW course data was tricky at first due to dynamically rendered web pages, but we were able to trace where they grab the content in the first place, which was static HTML. We are also very proud of the UI/UX, as it feels very intuitive and in line with the convenience this project was supposed to bring.

What we learned

We learned a lot about prompt engineering for structured outputs and the tradeoffs between different LLM providers for JSON extraction. We also got hands-on experience wiring together a data pipeline, a database, and a frontend into a coherent product.

What's next for Spindle

We are planning on expanding coverage to more courses and faculties, improving extraction accuracy, and adding smarter planning features like automatic scheduling and reminders based on assessment weightings and deadlines. There are also plans for a mobile application with dynamic widgets and notifications to keep you on track from anywhere.

Built With

Share this project:

Updates

Submission history