My projects: Place ratings
By: Štefan Prokop
Tags: Real Estate, Places, Symfony, Ratings And Reviews, Projects

Writing my own projects is something I like to do in my free time. Sometimes I have a sudden idea for a small project which I write on my bucket list and when I have time I will bring it to life. One of these projects is Place ratings.

Place ratings — home page

About Place ratings

The main goal of the Place ratings project is to keep ratings of cities, streets, buildings or flats. You can find it on https://hodnoceni-mist.cz/. Imagine you want to buy or rent a flat in your current city. Many times it happens that you are living in the city for years but you don’t know a lot of streets or parts of the city. How do you know the place where you found a flat is the best for you? This is the best time to visit Place ratings!

Other things. How do you know your future neighbors are good, polite, quiet or neat people? Do you know something about the lessor? Did they raise rent many times or were they annoying (for example often visited or controled your household)? You can share all these things on this website under the relevant address and number of the flat. It’s really helpful.

Place ratings — detail

You can easily search for a place — it uses the Bing maps so you can type an address for example. Each place you submit has its own detail page with ratings. Each place rating contains information like if the place is quiet, if there is a good public transport, if it’s good for a family, if there is any access to the nature, if there are some shopping options, restaurants or fast foods, culture — cinema / theatre and so on, sport centers and comments or stories about the place.

All of these categories have their own rating from 1 to 5 (1 — very bad, 5 — the best) illustrated with smileys. Then there is a general rating that is the average of all the category ratings.

Place ratings — add new rating

Rating is added by real people, it’s not a value extracted from somewhere of the internet or something like this. Each visitor is allowed to add a rating via a multi-step form without registration. There are 10 optional steps — questions for each category and a place where visitor can write a comment or a story about the place.

Technical info

When I’m making a new project I’m thinking about two important questions for me. How much time am I willing to invest into the development? Are there some technologies I would like to try or learn? The first question is the most important for me because I’m developing all of my projects in my free time and without any financial support. On the other hand often there are some things I have never worked with before. This time it was working with maps.

Technologies

As I said the time is the most important for me. Because of this I used PHP framework Symfony 5. The reasons are:

I have a lot of experience with Symfony

The last Symfony version I was working with before I switched from PHP to Node.js was 2.x — it’s something “new” for me

It’s very easy and fast to kick off the project instead of creating the backend in Node.js and the frontend in React for example

It’s very easy and cheap to deploy it

I was working with many PHP frameworks in my PHP times such as Zend, yii, slim, Laravel and so on. But Symfony had and has big community group and all questions I had I found on stackoverflow or other forums. There were also a lot of tutorials on YouTube and a lot of bundles that you can use. Some things / features I like about Symfony:

Simple and organized project structure

Dependency injection — classes are registered as a service automatically

Simple extension (bundle) installation

Now back to the core. I think there were no problems on the backend side. The backend is quite easy. There is one form, search query, saving and listing the places with ratings and reviews and some endpoints for frontend like comments pagination and so on.

The challenge was the map. I didn’t want to use Google maps because of its price. I wasn’t expecting a huge traffic but I didn’t want to risk it — I don’t want to invest my own money into the project right now. The project is localized for Czechia (because I’m from Czechia) and here we have popular maps called Mapy.cz that is the best choice. Mapy.cz is free to use with a quite good API but if you read their conditions you can see you are not allowed to store any information from the API to your local database but I need this data in my database. I was sad because the first mistake I did was that I implemented the Mapy.cz and then I read the conditions. The good thing is the code is well written so it’s not a problem to change the map library. The last choice was the Bing maps. Bing maps are free and easy to use with a nice playground. The only problem in the free version is that the coordinates are like shifted because you won’t receive the right position you are looking for. But that’s the price for free license.

Summary

~40 hrs of development (~8 hrs — backend, ~32 hrs — frontend)

What have I learned? “Look before you leap” 😃

I improved my CSS skills (the smileys were pain for me)

Conclusion

The project is localized just for Czechia yet. But it’s not a problem to add translations for other countries. You can find and try it on https://hodnoceni-mist.cz/ it’s available for the whole world, there are no area restrictions.

Please add reviews to places you know, it could help people to understand and get to know the area 🙂.

If you have any questions, ideas what to improve / add or bug reports don’t hesitate to contact me. You can use the contact form on the project website that is located in the page footer.

You can also check my GitHub and LinkedIn.