## Inspiration 💡

**Due to rising real estate prices, many students are failing to find proper housing, and many landlords are failing to find good tenants**. Students looking for houses often have to hire some agent to get a nice place with a decent landlord. The same goes for house owners who need to hire agents to get good tenants. *The irony is that the agent is totally motivated by sheer commission and not by the wellbeing of any of the above two.*

Lack of communication is another issue as most of the things are conveyed by a middle person. It often leads to miscommunication between the house owner and the tenant, as they interpret the same rent agreement differently.

Expensive and time-consuming background checks of potential tenants are also prevalent, as landowners try to use every tool at their disposal to know if the person is really capable of paying rent on time, etc. Considering that current rent laws give tenants considerable power, it's very reasonable for landlords to perform background checks!

Existing online platforms can help us know which apartments are vacant in a locality, but they don't help either party know if the other person is really good! Their ranking algorithms aren't trustable with tenants. The landlords are also reluctant to use these services as they need to manually review applications from thousands of unverified individuals or even bots!

We observed that we are still using these old-age non-scalable methods to match the home seeker and homeowners willing to rent their place in this digital world! And we wish to change it with **RentEasy!**

![Tech-Stack](https://ipfs.infura.io/ipfs/QmRco7zU8Vd9YFv5r9PYKmuvsxxL497AeHSnLiu8acAgCk)

## What it does 🤔

In this hackathon, we built a cross-platform mobile app that is trustable by both potential tenants and house owners.

The app implements a *rating system* where the students/tenants can give ratings for a house/landlord (ex: did not pay security deposit back for no reason), & the landlords can provide ratings for tenants (the house was not clean). In this way, clean tenants and honest landlords can meet each other.

This platform also helps the two stakeholders build an easily understandable contract that will establish better trust and mutual harmony. The contract is stored on an InterPlanetary File System (IPFS) and cannot be tampered by anyone.

![Tech-Stack](https://ipfs.infura.io/ipfs/QmezGvDFVXWHP413JFke1eWoxBnpTk9bK82Dbu7enQHLsc)

Our application also has an end-to-end encrypted chatting module powered by @ Company. The landlords can filter through all the requests and send requests to tenants. This chatting module powers our contract generator module, where the two parties can discuss a particular agreement clause and decide whether to include it or not in the final contract.

## How we built it ️⚙️

Our beautiful and elegant mobile application was built using a cross-platform framework flutter.

We integrated the Google Maps SDK to build a map where the users can explore all the listings and used geocoding API to encode the addresses to geopoints.

We wanted our clients a sleek experience and have minimal overhead, so we exported all network heavy and resource-intensive tasks to firebase cloud functions. Our application also has a dedicated **end to end encrypted** chatting module powered by the **@-Company** SDK. The contract generator module is built with best practices and which the users can use to make a contract after having thorough private discussions. Once both parties are satisfied, we create the contract in PDF format and use Infura API to upload it to IPFS via the official [Filecoin gateway](https://www.ipfs.io/ipfs)

![Tech-Stack](https://ipfs.infura.io/ipfs/QmaGa8Um7xgFJ8aa9wcEgSqAJZjggmVyUW6Jm5QxtcMX1B)

## Challenges we ran into 🧱

1. It was the first time we were trying to integrate the **@-company SDK** into our project. Although the SDK simplifies the end to end, we still had to explore a lot of resources and ask for assistance from representatives to get the final working build. It was very gruelling at first, but in the end, we all are really proud of having a dedicated end to end messaging module on our platform.
2. We used Firebase functions to build scalable serverless functions and used expressjs as a framework for convenience. Things were working fine locally, but our middleware functions like multer, urlencoder, and jsonencoder weren't working on the server. It took us more than 4 hours to know that "Firebase performs a lot of implicit parsing", and before these middleware functions get the data, Firebase already had removed them. As a result, we had to write the low-level encoding logic ourselves! After deploying these, the sense of satisfaction we got was immense, and now we appreciate millions of open source packages much more than ever.

## Accomplishments that we're proud of ✨

We are proud of finishing the project on time which seemed like a tough task as we started working on it quite late due to other commitments and were also able to add most of the features that we envisioned for the app during ideation. Moreover, we learned a lot about new web technologies and libraries that we could incorporate into our project to meet our unique needs. We also learned how to maintain great communication among all teammates. Each of us felt like a great addition to the team. From the backend, frontend, research, and design, we are proud of the great number of things we have built within 36 hours. And as always, working overnight was pretty fun! :)

---

## Design 🎨

We were heavily inspired by the revised version of **Iterative** design process, which not only includes visual design, but a full-fledged research cycle in which you must discover and define your problem before tackling your solution & then finally deploy it.

![Double-Diamond](https://ipfs.infura.io/ipfs/QmPDLVVpsJ9NvJZU2SdaKoidUZNSDJPhC2SQAB8Hh66ZDf)

This time went for the minimalist **Material UI** design. We utilized design tools like Figma, Photoshop & Illustrator to prototype our designs before doing any coding. Through this, we are able to get iterative feedback so that we spend less time re-writing code.

![Brand-identity](https://ipfs.infura.io/ipfs/QmUriwycp6S98HtsA2KpVexLz2CP3yUBmkbwtwkCszpq5P)

---

# Research 📚

Research is the key to empathizing with users: we found our specific user group early and that paves the way for our whole project. Here are few of the resources that were helpful to us —

* Legal Validity Of A Rent Agreement : <https://bit.ly/3vCcZfO>
* 2020-21 Top Ten Issues Affecting Real Estate : <https://bit.ly/2XF7YXc>
* Landlord and Tenant Causes of Action: "When Things go Wrong" : <https://bit.ly/3BemMtA>
* Landlord-Tenant Law : <https://bit.ly/3ptwmGR>
* Landlord-tenant disputes arbitrable when not covered by rent control : <https://bit.ly/2Zrpf7d>
* What Happens If One Party Fails To Honour Sale Agreement? : <https://bit.ly/3nr86ST>
* When Can a Buyer Terminate a Contract in Real Estate? : <https://bit.ly/3vDexWO>

**CREDITS**

* Design Resources : Freepik, Behance
* Icons : Icons8
* Font : Semibold / Montserrat / Roboto / Recoleta

---

# Takeways

## What we learned 🙌

**Sleep is very important!** 🤐 Well, jokes apart, this was an introduction to **Web3** & **Blockchain** technologies for some of us and introduction to mobile app developent to other. We managed to improve on our teamwork by actively discussing how we are planning to build it and how to make sure we make the best of our time. We learned a lot about atsign API and end-to-end encryption and how it works in the backend. We also practiced utilizing cloud functions to automate and ease the process of development.

## What's next for RentEasy 🚀

**We would like to make it a default standard of the housing market** and consider all the legal aspects too! It would be great to see rental application system more organized in the future. We are planning to implement more additional features such as landlord's view where he/she can go through the applicants and filter them through giving the landlord more options. Furthermore we are planning to launch it near university campuses since this is where people with least housing experience live. Since the framework we used can be used for any type of operating system, it gives us the flexibility to test and learn.

**Note** — **API credentials have been revoked. If you want to run the same on your local, use your own credentials.**
## Inspiration

The inspiration for our project stems from the increasing trend of online shopping and the declining foot traffic in physical stores. Our goal was to provide a unique and engaging experience for customers, encouraging them to visit physical stores and rediscover the joy of in-person shopping. We wanted to create an interactive and entertaining shopping experience that would entice customers to visit stores more frequently and foster a deeper connection between them and the store's brand.

## What it does

Our project is an AR scavenger hunt experience that gamifies the shopping experience. The scavenger hunt encourages customers to explore the store and discover new products they may have otherwise overlooked. As customers find specific products, they can earn points which can be redeemed for exclusive deals and discounts on future purchases. This innovative marketing scheme not only provides customers with an entertaining experience but also incentivizes them to visit stores more frequently and purchase products they may have otherwise overlooked.

## How we built it

To create the AR component of our project, we used Vuforia and Unity, two widely used platforms for building AR applications. The Vuforia platform allowed us to create and track image targets, while Unity was used to design the 3D models for the AR experience. We then integrated the AR component into an Android application by importing it as a Gradle project. Our team utilized agile development methodologies to ensure efficient collaboration and problem-solving throughout the development process.

## Challenges we ran into

One of the challenges we faced was integrating multiple APIs and ensuring that they worked together seamlessly. Another challenge was importing the AR component and creating the desired functionality within our project. We also faced issues with debugging and resolving technical errors that arose during the development process.

## Accomplishments that we're proud of

Despite the challenges we faced, we were able to achieve successful teamwork and collaboration. Despite forming the team later than other groups, we were able to effectively communicate and work together to bring our project to fruition. We are proud of the end result, which was a polished and functional AR scavenger hunt experience that met our objectives.

## What we learned

We learned how difficult it is to truly ship out software, and we are grateful to have joined the hackathon. We gained a deeper understanding of the importance of project planning, effective communication, and collaboration among team members. We also learned that the development process can be challenging and unpredictable, and that it requires perseverance and problem-solving skills. Additionally, participating in the hackathon taught us valuable technical skills such as integrating APIs, creating AR functionality, and importing projects onto an Android application.

## What's next for Winnur

Looking forward, we plan to incorporate Computer Vision technology into our project to prevent potential damage to our product's packaging. We also aim to expand the reach of our AR scavenger hunt experience by partnering with more retailers and enhancing the user interface and experience. We are excited about the potential for future development and growth of Winnur.
## 💡 Inspiration 💡

With school returning to in-person classes for everyone. There are two things on every student's mind:
Housing and Courses

Our team decided to combine two of the most important parts of university/college into one application. For many students, it is their first time dealing with properties and landlords. Some students end up taken advantage of by landlords or just end up with a very negative housing experience. A bad living situation could really affect student's performance during the school year and nobody wants that to happen to them. When finding a house for the school year, students often have to check multiple sites and sort through many different types of property listings. This can be really daunting for somebody living away from home for the first time.
We took inspiration from the RateMyProf website which is a website for professor and course reviews that many students use yearly to plan out their courses for the school year. We also wanted to create a housing site created directly for students. Many students struggle to find housing each year and we believe our project can help alleviate some of the trouble.

## ❓ What it does ❓

RateMyLandlord (RML) is focused on created a similar experience to RateMyProf but for the student housing market. Instead of focusing on professors, it focuses on Landlords of properties around a school campus and the quality of their service and their listings.
The site has a centralized database where students can search for landlords or rental housing. The criteria can be based on the landlord's name, the listing address, or even sorted by proximity to a specific school campus. Prior tenants are able to leave reviews of their experience with the landlords and their property, guaranteeing that students have a far easier time when searching for and signing a lease. We also hope that RML can aid students in making better financial decisions when it comes to renting houses.

## 🔨 How we built it 🔨

In terms of design, RateMyLandlord was created on Figma using the Iconify, Mapsicle and Clay Mockups 3D plugins. The logo was drawn in procreate.

On the frontend, RateMyLandlord is built with NextJS and Tailwind, using Axios and useSWR to interface with the backend (localhost)

On the backend, RateMyLandlord is built with Python, MongoDB, Flask, and various libraries that connect MongoDB and Python scripts.

## 💻 Challenges we ran into 💻

One of the first challenges we faced was creating responsive designs in Figma as well as working with auto-layout. As the design and front end team did not have much experience with this, it was quite challenging to learn on the spot.

We also struggled with establishing a connection to the MongoDB database

Setting up the REST API took some time but through trial and error we were able to figure out what was causing the HTTP errors

A huge issue was with the densely packed requirements of the frontend. David was the only frontend dev and so creating a dynamic fully flushed website was very difficult. Initially, we planned on faking much of the dynamic side, but David managed to squeeze it all out in the end! As a newer frontend dev, David didn't have much experience working with nextjs/tailwind, but with his previous react and css skills, learning it was a reasonable challenge!

## 🎉 Accomplishments that we're proud of 🎉

Creating a functioning Figma prototype and multiple mockups within the span of 2 days!
Meeting and working with new teammates to develop a fullstack application in one short weekend!
Learning new libraries and applications on the go!
Creating a large scale, functional frontend in two days!

## 🏫 What we learned 🏫

Amy learnt how to work with responsive design and autolayout on figma as well as creating mockups of the website.

Matt learned how to work his way around a NoSQL database as well as become more comfortable working with REST APIs

David learnt/refined intermediate-high level nextjs and tailwind skills, as well as polishing up on some intricacies with dynamic scaling and AJAX requests.

## ❤️ How to Run Our Code ❤️

You may notice that the vercel hosted website is not connected to a back-end!
You are correct, due to time constraints we were not able to host the backend live, therefore you'll have to run it locally to demo our project. (sorry about that!)
To run it locally, sign into MongoDB Atlas using these creds:
[ratemylandlord12@gmail.com](mailto:ratemylandlord12@gmail.com)
ratemylandlord12
access the database and connect to your local machine.
Then, download the backend and:
pip install -r requirements.txt.
flask --app NewMethod/app.py run
You should be good to go!