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
- claude
- cloudinary
- folium
- python
- streamlit
- supabase
Log in or sign up for Devpost to join the conversation.