Rate My Neighborhood – The Development Story



Visit – Rate My Neighborhood

So the story begins on a random Saturday afternoon in which I spent a couple of hours trying to find information about my neighborhood. I was looking up the basic stuff, like crime in my neighborhood, property value, etc. Then I was interested in comparing this information with another neighborhood that I was hoping to move to in the future. Again, I found the crime data, property value, etc. While these facts and number were nice, it didn’t give me the whole picture I was looking for. I really wanted to know what people who lived here thought about this neighborhood. I then started searching best neighborhoods in Denver, and best neighborhoods in Philadelphiaelphia, etc. This brought me to hundreds of articles from “travel” experts who had their fancy rating system. Unfortunately, this still wasn’t what I truly was looking for. I wanted to know the trivial stuff, the things that major reviews gloss over but residents wouldn’t. I took a lot of my inspiration from rate my professor. I love how the reviews are honest and blunt, exactly what I wanted. This is how I got inspired to build Rate My Neighborhood.

The Framework

When I first started building Rate My Neighborhood, I was using PHP. My initial logic was since I can’t run a NodeJS server (as this would be on a shared hosting environment) there would be no need for javascript frameworks like Angular or ReactJS. I could just do everything from plain old PHP and keep it all contained. Well, that idea lasted no more than an hour. I quickly found that I needed UI state management and lots of conditional rendering. ReactJS was the obvious choice but I could have also gone with Angular.

As for the backend, my API would have to be written in PHP and interact with an MYSQL database. Unfortunately, running a web application in a shared hosting environment slightly restricts the tools that are available to you.

Design

I will already spoil the rest of this post and tell you it took about 3 weeks to build Rate My Neighborhood from start to finish. 80% of that time was spent on the design and user experience. The actual logic of this application (at least in the beginning) was not hard. Perform a SQL search on a zip code and display the results. However, it’s important to remember that a user doesn’t see the code you write. Whether or not my code is written using the best algorithms and code style makes no difference to the user (unless it’s not working). What they care about are the actual visuals. They want to see something that impresses them and makes them want to use the product. What I love and hate about designing the best user experience is that it’s never “done.”

For example, I could ask you to implement a function to add two numbers together. As long as that requirement is met, I don’t really care how you did it; it’s done as long as I get the expected output. User experience and UI design are not so straightforward. One day, I could implement what I might consider being a perfect design choice, and tomorrow a user could come back and say it doesn’t make sense or it’s hard to follow. It’s all very subjective.

The Execution

As for the actual development, nothing exciting to note. I worked on it off and on for about 3 weeks then deployed it to my server when I met all my initial guidelines. I love how ReactJS really streamlines the build process and makes deployment a breeze.

Challenges

SEO is my current biggest challenge for Rate My Neighborhood. I’m really dependent on Google Search being able to render Javascript and not just see a blank page when they index the site. It currently seems to be a very hit or miss situation. Google PageSpeed insights doesn’t seem to have a problem rendering the application, but Google Search console does.I might consider switching to server-side rendering if it gets bad enough, but for now, I am going to wait it out.