Questown - Talya913/questown GitHub Wiki
Our application is designed to find quests based on user's preferences. All quests have 6 categories, which can be either true or false and represent elements that quest contains. These categories are: adventure, horror, logic, intelligent, silly, dirty, romantic, and drama. Before the user presses the search button, they need to evaluate their attitude towards each category on a scale from 1 to 5 (or leave the space empty, then it will not affect the result), and type some words if they search for something more specific (the application will find similarities between typed words and quest titles or quest descriptions; if nothing is filled in this form, it returns all quests). Based on this information, quests get a rating that is calculated in the following way: if a quest does not contain a category (category is false), it does not affect its rating; otherwise, the quest gets some rating, depending on the user's evaluation of this category: it gets -10 if the evaluation was 1, -5 if it was 2, +1 if it was 3, +4 if it was 4, or +7 if it was 5 (at least, it should work that way ideally, but at this point it is still work in progress, because Python is quite different from R, and nobody taught us numPy... we tried, but it does not really work for now, so it searches only based on the input text). Then the application shows a list of quests, rearranged in descending way based on their rating, so the more rating they have, the higher they are on the page (the filtration is still possible only through text input). On each quest page a user can leave their trace, a 'beacon', that will help other users find out that they are interested in visiting this quest. But before that, they need to register and log in. The registration asks user's username, name, age, gender, email, and password, and after completing it, the user has a full access to all of our application's services. The passwords are encrypted, so no one can freely access them, even developers, thus it is more or less safe. However, since the passwords are encrypted, and the registration requires no verification, we did not provide any means of restoring the password, so you'd better not to forget it, otherwise, it will be lost for good (even though it is still stored in our database). At the account page, the user can change all the information they wrote + they can add their own picture to their profile and write something about themselves, so other people will know more about who the user is. Apart from that, here they can see their created beacons, which they can update or delete if they want to. All the basic information is also displayed at user pages (though it is impossible to update it from this page), including username, name, age, gender, picture, and the about section. At a quest page, apart from some information about it, a logged in user can, as it was already said, create a beacon, or find beacons. If they choose the first option, they will be asked to enter preferable minimal age, maximal age (both in years), and gender of their partner. If they choose the second option, they will be asked to enter the same data, but instead of creating a new beacon, the system will compare preferences of both beacon-creators and beacon-seekers to their information on their user pages, and show only those beacons, that fully corresponds to the inputted preferences to only those users, who match the preferences, defined when the beacon was created. The system will show a list of all matched beacons, that lead to user pages of those who created them. With that, users can understand, whether they want to hang out with them, or not. They will also find their email, so they can write them anytime and negotiate about their quest visit. When a user does not want to go to this quest anymore, they simply delete their beacon, and that is it, their beacon is erased from our server's memory. It is important to understand, though, that there are only quests, located at Saint Petersburg, so users from other cities probably will not find much of a use at this application.