Dream Homes is a website created using the Django Framework and a PostreSQL database.
It allows users to search for listings using the search tool or by accessing the latest 3 listings which are displayed on the home screen.
If the user is interested in a property, they are able to send an enquiry to the estate agent who is responsible for that particular property.
Users are also able to register and login. By logging into the website, users will be able to have access to their own dashboard where they can communicate with their estates agent via an inbuilt messaging system.
This was my first full-stack web development project which I started working on as soon as I had learnt how to use the Django framework. This project allowed me to tie in together both front-end and back-end technologies and explore the connection between the two.
I was particularly interested in how dynamic websites work especially where the the user decides what content they want to view by applying filters.
Initially, I considered producing an online forum being inspired by Reddit. However, I wanted to experiment with database manipulation. I especially wanted to make my own search tool from scratch where I would need to consider both the front end and back end with consideration to how a user may interact with the search tool.
I have used Bootstrap in my front-end as in this project I wanted to focus more on the back-end and the user interaction aspect of the site. Bootstrap therefore offered a great solution as it meant majority of my media queries and general CSS was already taken care off.
Nevertheless, I did write my own styling in particular for the homepage so that I can diplay the page in the way I had originally envisioned it.
On the front-end, I put most of my focus on the search tool and messaging system as I wanted both to be initiative and user-friendly.
I therefore researched other popular sites such as Amazon and Zoopla to understand what a search tool should look like and how a user would expect to use one. Similarly, I explored Facebook’s messaging platform to understand how a user would expect to interact with a messaging system.
I had the opportunity to practice Python when I was developing the search tool. Most of the fields of the search tool would query the database against a field. This was achieved through having select options so that the user's options were limited. However, with the location field I wanted to give the user more freedom.
I could have broken down the field to smaller fields for each part of the address. However, I wanted to use this opportunity to create my own search algorithm. Just as search engines are able to differentiate between a postcode, a city and an address line, I wanted my system to do the same.
I achieved this by defining in which order the system would search address fields and have added additional logic by using regular expressions to check if the user is entering a postcode.
Once I had coded the search algorithm for each type of address field, I then expanded this to work for difference searches where a user may search for only one field such as a city, or their search may include multiple address fields such as a partial postcode and a city.