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.
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.
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.
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.