Inspiration

Affordable rentals for students in Adelaide are mostly posted on forums like AdelaideBBS, sorted by time, so older posts get buried. Most listings are also in Chinese, which locks out anyone who can't read it.

What it does

RentMap puts rental listings on one map. You can filter by price, room type and area, and click a marker to see details. Listings come from a posting page or from an AI pipeline that turns a forum post into a structured listing. Every listing is reviewed by an admin before it goes live.

Built during this hackathon

The map, filters, posting page, admin review and the scraping pipeline existed before. This weekend I built English translation:

  • Free text (titles, descriptions) is translated with the Claude API and cached, falling back to the original if translation fails
  • Fixed values (room type, yes/no) use a lookup table
  • Map markers, popups and sidebar navigation follow the selected language

How I built it

Python, Streamlit, Folium, Supabase, Cloudinary and the Claude API. The database always stores the original Chinese values, and translation only happens at display time, so filters work the same in both languages.

Challenges I ran into

Keeping stored values and displayed values separate, so switching language doesn't break filtering. Streamlit also builds its sidebar navigation from file names, so I replaced it with custom links that follow the selected language.

Accomplishments that I'm proud of

The site is live at rentmapau.com with real listings, and a Chinese forum post can now become an English-readable map listing.

What I learned

How to decide which parts should be deterministic code and which should go to an AI model.

What's next for RentMap

Translate listings when they're imported and store both languages, so the site doesn't need to call the API at runtime.

Built With

Share this project:

Updates

Submission history