Skip to main content

Command Palette

Search for a command to run...

The Journey Behind Creating RentNest: Lessons Learned

Published
4 min read
The Journey Behind Creating RentNest: Lessons Learned
A

I am a technical writer and software engineer

Intro

RentNest is an online directory designed to revolutionize how house and real estate agents in Kenya advertise their services. By accepting agents registered with the Estate Agents Registration Board (EARB), RentNest ensures that Kenyans can connect with legitimate agents.

This helps mitigate the rampant scams found on social media platforms. The directory offers more than just listings – it’s a safeguard for anyone seeking genuine real estate services in Kenya.

I conceived and developed the RentNest concept, working on the design, front-end, and back-end development.

With RentNest, users can directly reach out to verified agents without the need for intermediaries, making it easier to find rental properties or land for sale, all in a seamless and transparent process.

The Story Behind RentNest

As a digital nomad, I’ve had the freedom to live and work in different cities and towns across Kenya. With every move, I found myself repeatedly searching for real estate agents. Unfortunately, this process often left me vulnerable to scammers.

There was a time when an individual, posing as a legitimate agent, asked for a 1K downpayment just to send me photos of a property I was interested in. In another case, a so-called agent demanded I pay a full month’s rent before even allowing me to view the house – another scam.

These frustrating experiences became the driving force behind RentNest. I created it with the hope of helping fellow Kenyans avoid the pitfalls of fraudsters and connect with honest, verified agents.

Accomplishments

For the front end, I utilized HTML, CSS, Bootstrap, and JavaScript to create a clean and responsive user interface. I chose Flask-Bootstrap for its ease of use and seamless integration.

It allowed me to style the web app quickly while keeping the design simple yet functional. My decision to simplify the front end was intentional, as my focus was enhancing my skills in Python, Flask, and MySQL.

On the backend, I opted for Flask due to its flexibility and lightweight framework. Although Django was an option, it lacked the flexibility that my project demanded. I integrated MySQL as the database solution, allowing me to strengthen my SQL proficiency.

In addition, I implemented authentication using the Flask-Login package, enabling secure user login and session management. This feature added an extra layer of security and functionality.

Challenges

Early in the project, I initially planned to implement Google OAuth as the login method for my online real estate directory, aiming to provide agents with a convenient way to sign in.

However, as I delved into the process, it quickly became a daunting task. I spent hours following several online tutorials and reading countless articles, but despite my best efforts, I was unable to get the integration to work smoothly.

Frustrated but determined, I began searching for alternatives and eventually discovered the Flask-Login package. Its simplicity and ease of use made it the perfect fit for my project.

I was able to implement a secure authentication system without the unnecessary complexities that came with OAuth, allowing agents to log in and manage their accounts seamlessly.

This shift not only saved me valuable time but also allowed me to focus on other key aspects of the app.

What I’ve learned

Technical takeaways: During this project, I deepened my understanding of Flask for backend development, particularly with blueprints and SQLAlchemy ORM for organizing and managing the database. I also implemented Flask-Login for user authentication, which allowed me to secure user sessions efficiently.

What I might do differently: Looking back, I would consider using a front-end framework like React to make the web app more dynamic and interactive. This would allow for a better user experience by enabling smoother transitions and real-time updates without reloading the entire page.

What I learned about myself as an engineer: This project taught me a lot about resilience. I faced several challenges while trying to implement authentication, but I remained determined and eventually succeeded. I also demonstrated flexibility when I switched from using Google OAuth to Flask-Login, adapting to the needs of the project without giving up.

How this project informs my engineering path in the future: Through this experience, I’ve realized that I’m capable of learning and applying new technologies to build practical projects. It has boosted my confidence in picking up new tools and frameworks as needed in future projects.

Final Thoughts

Before starting this project, I believed backend development was difficult. While it was indeed challenging, I found it to be thought-provoking and fulfilling. It has reshaped my perspective, making me more eager to tackle backend tasks in the future.

About Me

I am a passionate software engineer and technical writer focusing on backend development. I enjoy solving complex problems using React, Python, Flask, and MySQL.

GitHub link: https://github.com/samlan24/online-directory

Project landing page: https://samlan24.github.io/online-directory/

LinkedIn profile: https://www.linkedin.com/in/allan-wanjiku/