- Project Name: Flat Finder
- Project Description: Tool for finding shared apartments using user preferences and shared-apartments descriptions.
- Data Source: Scraping wg-gesucht using Selenium.
- Approach: Unfiltered scraping, temporary storage in a JSON file, structural and deep filtering, recommendation generation.
- Tools: Selenium, MongoDB, GPT-3.5, Telegram.
- Profile creation and update.
- Preference setting.
- WG recommendations (active and passive).
- Creating User: User will be created in UI and preferences will be set.
- Scraping: Collecting data from wg-gesucht using selenium.
- Storage: Temporary storage in a JSON file.
- Filtering: Apartments data will be filtered for the user.
- Recommendation: Deep filtering with non-structural data, generating recommendation for user and an example application text.
- UI notification: Notifying the user of the recommendation and example application.
- Download Telegram on your Smart phone (IOS) or Desktop (windows)
- Create an account in Telegram.
- setup your env. file to the flat finder Folder:
- download the Google Chrome browser.
- Install the requirements:
pip install -r requirements.txt
- Run the Agent:
python main.py
- Run the Telegram Bot:
python src/FE/app.py
- Start the conversation with the FlatFinderHTWBot:
- Start a Chat with the bot using this link.
- Klick on the start button or send /start.
- send /profile to set up your profile and preferences.
- uncomment the Line 384 in FE/app.py.
# response = agent.get_response(user_id, message) ```:
2. use this example user Data for creating your profile
{
"average_monthly_net_income": 2000,
"date_of_birth": "2000-01-01",
"email": "[email protected]",
"employment_type": "Student",
"full_name": "John Doe",
"phone_number": "1245",
"smoker": false
"additional_info": ["balcony", "peaceful"],
"address": {
"street": "Seidelbastweg",
"house_number": 1,
"zip_code": 12357,
"city": "Rudow",
"country": "Germany"
},
"apartment_preferences": {
"max_rent": 600,
"location": "Berlin",
"bezirk": ["Mitte", "Friedrichshain", "Rummelsburg", "Wedding", "Kreuzberg"],
"min_size": 20,
"ready_to_move_in": "2024-06-01",
"preferred_roommates_sex": "gender_irrelevant",
"preferred_roommate_age": [20, 30],
"preferred_roommate_num": 3,
"smoking_ok": false
}
}
- this will make sure that you receive a static listing stored in the output.json file.