Welcome to Wiki Page of Group 7. In this page, you will find everything you need to know about our “Rate My Place!” application.
Our team consists of three motivated students who come to Codecamp to eagerly learn about Sailfish OS, that's why we called ourselves as The Three Fishermen. All of us currently studied under Erasmus Mundus Master of Pervasive Computing and Communications for Sustainable Development (PERCCOM) and came all the way from University of Lorraine, France to study one semester in Lappeenranta University of Technology.In case you want to know more about our “Rate My Place!” application or PERCCOM Program, feel free to contact us on below email addresses.
Name | Student No. | Email Address |
---|---|---|
Chandra Satriana | 0424786 | chandra.satriana@lut.fi |
Md. Mohaimenul Hossain | 0424689 | md.hossain@lut.fi |
Alifia Fithritama | 0424663 | alifia.fithritama@lut.fi |
We named our application “Rate My Place!”. The idea behind this application came up from our very own experience as Erasmus Mundus Students who are moving from one country to another every 6 months or so. Every time we are moving to a new place, we need to prepare many things, and one of them is about finding an apartment. Without any prior knowledge about the new places, finding a good apartment can be as hard as finding a girlfriend. In order to make your live enjoyable (not miserable), you want to find one apartment that are within walk distance from the university, close to bus stop, has a panoramic view just outside of your window, and of course close enough to the city center where you can reach for any kind of shops, supermarket, cafes, bars and restaurants. You have all these criteria of perfect apartment in your head, but you have no idea how to find one. Well, wonder no more, because with “Rate My Place!” , we assure that you will find your dream apartment just in one click.
The theme for Codecamp 2014 is about Open Data, so we decided to make an location-based application using Open Street Map. Our targeted user is anyone who wants to search for a living place. We want to help people to choose a good apartment by providing them a rating for based on the distance of the apartment to 7 nearby places which are bus stops,shops,atm,university,city center, restaurant, and hospitals. We hope that our application will be useful for people who are moving a lot and have limited time to search about appartment information, for example: exchange students, travelers, or businessmen. We would like to develop a user-friendly application that provide an integrated solution so the user can all the information they need in all in one place.
To help the user determine the quality of the apartment, we calculate a rating (from 1 to 5 stars)based on the distance criteria. The nearest the distance from the 7 places, the higher the rating will be. If distance is within 300 meters, score will be 5 star. Within 500 meters, score will be 4 stars. Within 700 meters, score will be 3 stars. Within 1 km, score will be 2 stars. And lastly, within 2 km, score will be 1 star. After getting 7 individual scores, finally we calculate the total score using simple average of those individual scores.For example, an apartment which has bus stops,shops,atm,university,city center, restaurant, and hospitals in 300 meters distance will got highest rate of 5 stars because each of individual scores are also 5 stars. However, we put some exception that if the individual score of bus stop is 5 stars (meaning: there is a bus stop within 300 meter distance from apartment), then the total score will get at least 3 stars. We made an assumption that as long as there is a bus top nearby, it is basically easy to go almost anywhere, therefore the bus stop has the highest priority among all.
We are proudly present our very first Jolla application “Rate My Place!” which has bunch of cool features including:
We are using the following technology in building our application:
The theme for Code camp 2014 is Open Data, therefore we use the readily available free data on the internet to develop our application. You can find the sources here:
Retrieval of Coordinate of an address
QString urlString = "http://nominatim.openstreetmap.org/search.php?q="+address+"&viewbox=28.13$2C 61.05$2C28.14$2C61.04&format=xml"; //Getting the XML for the user's address manager = new QNetworkAccessManager(this); reply = manager->get(QNetworkRequest(urlString)); QEventLoop loop; connect(reply, SIGNAL(finished()), &loop, SLOT(quit())); loop.exec(); //Parsing the XML to get the coordinate of the user's address QDomDocument *doc = new QDomDocument(); doc->setContent(reply); //Get the root element QDomElement docElem = doc->documentElement(); QDomNodeList nodeList = docElem.elementsByTagName("place"); //Check each node one by one. //for(int ii = 0;ii < nodeList.count(); ii++) for(int ii = 0;ii < 1; ii++) QString urlString = "http://nominatim.openstreetmap.org/search.php?q="+address+"&viewbox=28.13$2C 61.05$2C28.14$2C61.04&format=xml"; //Getting the XML for the user's address manager = new QNetworkAccessManager(this); reply = manager->get(QNetworkRequest(urlString)); QEventLoop loop; connect(reply, SIGNAL(finished()), &loop, SLOT(quit())); loop.exec(); //Parsing the XML to get the coordinate of the user's address QDomDocument *doc = new QDomDocument(); doc->setContent(reply); //Get the root element QDomElement docElem = doc->documentElement(); QDomNodeList nodeList = docElem.elementsByTagName("place"); //Check each node one by one. //for(int ii = 0;ii < nodeList.count(); ii++) for(int ii = 0;ii < 1; ii++) { QDomElement el = nodeList.at(ii).toElement(); latit = el.attribute("lat"); longit = el.attribute("lon"); } setLatLong(latit+"|"+longit);
Find parameters (bus stops,shops,atm,university,city center, restaurant, and hospitals) closest to the address
//within 500m //1. Getting ATM list QString atmString = "(node(around:500,"+latit+","+longit+")[\"amenity\"=\"atm\"];>;);out;"; atmString = "http://overpass.osm.rambler.ru/cgi/interpreter?data="+atmString; //Getting the XML //manager = new QNetworkAccessManager(this); reply = manager->get(QNetworkRequest(atmString)); connect(reply, SIGNAL(finished()), &loop, SLOT(quit())); loop.exec(); doc->setContent(reply); //Get the root element docElem = doc->documentElement(); nodeList = docElem.elementsByTagName("node"); if (nodeList.count()>0){ //setAddressToRate("ada di <500m"); theATM.score = "4"; theATM.distance="500"; // setAddressToRate("Score"+theATM.score); for(int ii=0;ii<nodeList.count();ii++){ // get the current one as QDomElement QDomElement el = nodeList.at(ii).toElement(); atmResult = atmResult+"$"+"lat:"+el.attribute("lat")+"|lon:"+el.attribute("lon"); } atmResult=atmResult+"|score:4|distance:500"; atmResulti=4;
Rate the place
totalz = totalz+atmResulti + municipalityResulti+restaurantResulti + busStopResulti + universityResulti+ smarketResulti + hospitalResulti; totalz=qRound(totalz/7.0); if(busStopResulti==5){if(totalz<3)totalz=3;}}
Meet Dr.Fish who is pleased to see you in person:
rate_my_place.pdf
Read this to get a detailed explanation:
rate_my_place_report.pdf
You can download our application here:
https://openrepos.net/content/3fishermen/rate-my-place
You can download our source code here:
https://dl.dropboxusercontent.com/u/50897880/RateMyPlace.zip