Inspiration

As international students already paying over $10,000 per semester in tuition and living costs, we know how quickly “small” extra fees add up. One of the most frustrating examples is textbooks. Universities often package textbook access into flat-rate programs that sound convenient, but in reality they treat every student the same. At Truman State, for example, a standard 15-credit student can be charged $330 per semester through programs like First Day Complete.

The problem is that students rarely use every textbook equally. In many classes, you only need certain chapters before a midterm, a quiz, or the final. Yet students are still pushed into paying for a full-semester rental or full purchase up front. On top of that, trying to manually compare prices, editions, rentals, and free access options across different providers takes hours. We wanted to build something that treats textbook access not as a flat tax, but as a personalized logistics problem. That idea became SmartRent.

What it does

SmartRent is an AI-powered textbook optimization assistant. A student uploads a course syllabus, and the system turns it into a cost-optimized textbook access plan.

Instead of simply extracting the list of required books, SmartRent goes further. It identifies the course schedule, finds when readings and exams happen, searches across multiple textbook and library providers, and recommends the cheapest or most accessible way to get each book only for the time period the student actually needs it.

The result is not just “here is your textbook.” It tells the student:

  • what book they need
  • which edition is most likely correct
  • where to access it
  • whether it is free, borrowable, rentable, or purchasable
  • and when during the semester they actually need it

That means a student might discover they do not need to buy a book at all, or that they only need a short rental window before a midterm instead of paying for an entire semester.

How we built it

We built SmartRent as a modular FastAPI backend with a staged AI pipeline, plus a React/Vite frontend that makes the whole process transparent and easy to demo.

Backend pipeline

The backend is organized into four main stages:

Step 1: Syllabus extraction
The system accepts a syllabus PDF, extracts text, and uses structured LLM output to identify required textbooks and key schedule items like exams, quizzes, and reading periods. We designed this stage with strict schema rules because accuracy matters: if the syllabus says nothing about a book or due date, the AI should not invent it.

Step 2: Provider search and book matching
Once we have candidate books, SmartRent searches multiple sources in parallel through a provider layer. This includes platforms like Open Library, Google Books, WorldCat, eCampus, Internet Archive, HathiTrust, DOAB, OAPEN, Primo, and EDS. The tricky part here is that provider search results are often messy, incomplete, or inconsistent. So we use AI again, not to generate random answers, but to intelligently match raw provider results to the most likely textbook required by the syllabus.

Step 3: Cheapest option selection
After matching results across providers, the system compares them using explicit decision rules. It prioritizes free and borrowable options first, then evaluates rental or purchase choices based on cost and availability. This stage is deterministic and practical: once the data is matched, the system makes a clear recommendation.

Step 4: Final textbook plan assembly
The final stage merges provider decisions back with the original syllabus data. This is what makes SmartRent useful. Instead of outputting a plain search result, it produces a student-facing plan tied to the course timeline, so each recommendation is connected to actual reading or exam needs.

Chat assistant

We also added a lightweight contextual chat assistant that answers questions only about the uploaded syllabus and the generated textbook plan. This gives the student a way to ask follow-up questions such as:

  • “Do I need this book before midterm 1?”
  • “Which books are free?”
  • “What can I delay renting until later in the semester?”

Frontend

On the frontend side, we have a React/Vite interface that presents the product as a clear four-step experience. The app shows pipeline progress, displays schedule information and textbook recommendation cards, and then opens a contextual assistant chat.

Challenges we ran into

One of the biggest challenges was that textbook data in the real world is messy. Provider APIs do not all behave the same way. Some return incomplete metadata, some emphasize previews or documents instead of actual textbooks, and some surface the wrong edition even when the syllabus clearly requires a newer one. That made edition matching one of the hardest parts of the project.

Another challenge was balancing AI flexibility with reliability. Syllabi are unstructured and often inconsistent, which makes them a good use case for LLMs. But at the same time, hallucinations are unacceptable in a workflow like this. A fake book, wrong exam date, or incorrect edition would ruin trust immediately. We had to make the prompts strict, validate outputs against a schema, and keep the rest of the pipeline as deterministic as possible.

We also ran into integration challenges on the search side. Searching multiple providers in parallel sounds simple, but each source has different result formats, different availability signals, and different quality levels. Building a unified provider layer that still preserved enough detail for smart matching took a lot of iteration.

Accomplishments that we're proud of

We are proud that SmartRent goes beyond a generic AI demo and solves a real student problem with a workflow that feels practical and believable. In addition, we are proud that we connected the system to real external providers, not a fake textbook database. We are also proud that We created a product that produces an actionable recommendation plan, not just search results.

What we learned

This project taught us that AI works best when it is used as one smart component inside a larger system, not as the whole system.

We learned that LLMs are powerful for extracting structure from messy human documents and for resolving ambiguous search results, but they need strong boundaries. The best results came when we paired AI with schema validation, clear prompts, and deterministic decision logic.

We also learned how difficult real-world data integration can be. Even something that sounds straightforward, like “find this textbook online,” becomes much harder when you account for edition mismatches, partial metadata, duplicate results, free-access sources, rental providers, and course-specific timing.

What's next for SmartRent

Our next goal is to make SmartRent even more personalized, accurate, and useful across full student schedules.

The next steps we are excited about include:

  • improving edition verification, especially for newer textbook versions
  • detecting chapter-level reading windows more precisely from the syllabus
  • adding smarter logic for short-term rental timing
  • supporting multiple classes at once so students can optimize their entire semester
  • expanding provider coverage and improving result quality
  • adding stronger explanations for why a specific provider was chosen
  • and building account features so students can save plans and revisit them later

Long term, we see SmartRent becoming an academic budgeting assistant rather than just a textbook finder. The vision is to help students make smarter, lower-cost decisions across the semester instead of overpaying on day one.

Built With

Share this project:

Updates