Livio – Your Smart Flatmate Finder

πŸš€ Livio is a multilingual roommate matching app that uses real-world data and cosine similarity to recommend the most compatible flatmates β€” based on lifestyle, habits, and personal preferences. Built entirely in Python with Streamlit, it’s designed to be explainable, beautiful, and exportable.

πŸ”— Live app β†’ livio-roommate-matching.streamlit.app
πŸ“¦ GitHub repo β†’ github.com/Isaac5Tayfur/livio-roommate-matching


πŸ”§ Key Features

  • 🎯 Personalized matching using Cosine Similarity on normalized lifestyle traits

  • 🌍 Bilingual UI (English and Spanish)

  • πŸ“Š Interactive charts and profile comparisons

  • 🧬 Trait explanations based on shared lifestyle preferences

  • 🧼 Filters for non-smokers, healthy eaters, and pet allergies

  • πŸ“₯ Export results as CSV and high-res PNG (chart + table)

  • πŸ’‘ Dynamic theming with responsive layout and dark/light mode support


🧠 How It Works

Livio loads a dataset of 15,000+ tenant profiles, each with traits like:

  • Sleep schedule, work shift, energy rhythm

  • Budget, social level, cleanliness rating

  • Preferences like reading, pets, loud music, cooking, diet, etc.

These profiles are encoded and normalized with MinMaxScaler, then compared using Cosine Similarity.

You select up to 3 seed tenants, and Livio recommends the top N most similar profiles β€” based on shared normalized traits.


πŸ–₯ App Interface

Below are examples of the Livio interface in both English and Spanish versions:

πŸ‡¬πŸ‡§ English UI

English UI

πŸ‡ͺπŸ‡Έ Spanish UI

Spanish UI


πŸ“Š Outputs & Exports

After running a match, Livio displays:

  • A bar chart of compatibility scores

  • A comparison table of key lifestyle traits

  • An explanation block with top shared habits (e.g., πŸ›οΈ Early risers, 🧼 Clean, 🚭 Non-smokers)

You can also download the results:

πŸ“‹ Table (PNG)

Table (PNG)

πŸ“Š Chart (PNG)

Chart (PNG)


πŸ—‚ Project Structure

Livio/
β”œβ”€β”€ app.py               # Streamlit frontend
β”œβ”€β”€ logic.py             # Matching algorithm & data preprocessing
β”œβ”€β”€ ui_helpers.py        # Chart, table, and trait explanation functions
β”œβ”€β”€ tenants_dataset.csv  # Full dataset of profiles
β”œβ”€β”€ metadata.xlsx        # Schema of all traits and value options
β”œβ”€β”€ Media/               # Visual assets (banner, exports)
β”œβ”€β”€ requirements.txt     # Python dependencies
└── README.md            # GitHub documentation

πŸš€ Try It Yourself (Locally)

git clone https://github.com/Isaac5Tayfur/livio-roommate-matching.git
cd livio-roommate-matching
python -m venv venv
source venv/bin/activate  # or venv\Scripts\activate on Windows
pip install -r requirements.txt
streamlit run app.py

🟒 Python β‰₯ 3.9 required. No database needed β€” all data is in CSV format.


☁️ Deployment

Livio is deployed live using Streamlit Cloud.
No signup is needed β€” just open and try:
🌐 livio-roommate-matching.streamlit.app


🧭 Future Enhancements

  • User authentication and history

  • Weighted trait matching

  • Database-backed profiles

  • Additional languages (French, German...)

  • Mobile optimization and saved preferences


πŸ‘€ Author

Tayfur Akkaya Clavijo
πŸ”— LinkedIn | πŸ§‘β€πŸ’» GitHub | ✍️ Blog


πŸ“œ License

MIT License. Free to use, adapt, and contribute.

0
Subscribe to my newsletter

Read articles from Tayfur Akkaya Clavijo directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Tayfur Akkaya Clavijo
Tayfur Akkaya Clavijo

I'm an AI, data and finance enthusiast. Passionate about lifelong learning and cross-sector innovation, I’m always looking to collaborate on impactful projects at the intersection of data, strategy, and technology.