"Find your central perk in life"
Solution for TSEC_HACKS_2023. A 24-hour offline hackathon organized by TSEC_CODECELL.
Find the problem statement here.
Problem Statement as we understood it -
There were 2 main requirements in the PS -
- Finding the perfect roommate match depending on user preferences and input
- Avoid Catfishing on the platform
Solution
Entities in the system:
- User - who needs a roommate
- House - different houses available for rent
- House-owner - Owner of the apartment
- Group - group of people who are interested in the same room/apartment
-
We take as input the following data from the user:
- Is a drinker?
- Is a smoker?
- occupation
- age
- gender
- phone
-
As this information is available for every user while searching for roommate we use this information to match the profiles.
-
This matching can also be done by using ML algorithms. However, there is no need for ML in this case because we don't want similar profiles but exact preference matches.
-
For this, we give filters to users while searching for rooms/roommates(just like when you shop on myntra or amazon) and we use these filter keywords to find the rooms
- This is a crucial component of the solution.
- We didn't want the user to just scroll through the profile list of other users that share the same preference as him. As these users may or may not be actively looking for a roommate at the exact same time but they can be previous users.
- To tackle this problem we created groups. It is similar to WhatsApp groups. Here it is a group of people who are interested in the same flat/room present on the platform.
- The list of groups for a specific apartment is present on the room-profile page. So when any user finds a room that is suiting his style of living, he can see different groups that have a requirement for more members. For example, when the total accommodation of an apartment is 4 but only 2 members are currently present in the group.
- The user can then look at the members present in the group and their profiles. If the user profiles are matching his preferences then he can decide to make a request to join the group.
- Once approved by other members of the group he can join the group.
- Once the group is full, they can collectively apply for the room.
- This was the most challenging part. How to verify whether the data given by different users while registering on the platform is true or not. Because if the data is not correct then it will cause tons of problems.
- For example, If I as a user need a particular apartment. Let's assume that I am a smoker/drinker and I see that the room's other roommates are not allowing drinking/smoking in the residence. In this case, I can show myself as a non-drinker/non-smoker until I get the apartment.
- The verification of this is impossible just by the use of the software. So rather than checking whether the user is lying or not, we made sure that he will not want to lie. This means he won't get the apartment and face the consequences.
- We introduced one more entity - "Room-owner". We left the job of verification to the room owner. That is one of the other roommates complained about the drinking/smoking behavior of the user. Then room-owner has the right to remove that user from the room. We include this right in the terms and conditions while applying for the room.
- Now, why will the room owner even go through this hassle after he got his money from all the room members? It's because he/she has some benefits from doing so.
- We are giving the owner contribution points and featuring him/her on our platform as a responsible and trustworthy party who is contributing to our platform (a wild example would be - a super liked profile on bumble, basically something different than normal profiles). So that the owner can get more customers in the future.
Landing Page
Authentication
phone login | otp verification |
Feed
Room Profile
Group Profile
User Profile
- ReactJs
- Tailwind
- Firebase
- Figma
- Excalidraw