Restaurant Recommendation Application
Description
The Restaurant Recommender project is a privacy-preserving, user-centric recommendation system that helps users discover restaurants based on their personal preferences, contextual information (e.g., time of day, calendar events), and location. The project consists of three main components: an Android mobile app, a backend server, and a web interface. All components work together to provide a seamless experience across platforms, while ensuring minimalistic and privacy-protected data sharing.
1. Android Mobile App
The Android mobile app is the primary interface for users to interact with the restaurant recommendation engine. The app allows users to:
- Discover restaurants in Slovenia based on cuisine preferences, time of day (e.g., lunch or dinner), and location.
- Filter restaurants using personalized recommendations based on previous interactions (e.g., clicked restaurants, user ratings, and sentiment).
- View restaurants on a map, using Google Maps interface.
- Privacy-preserving search: The app stores user preferences locally in a XML file on the phone, ensuring that minimal data is shared with the server. Only the complemented query, which includes essential information like cuisine preferences, time, and location, is sent to the backend for collaborative filtering.
2. Web Interface
The web version of the app mirrors the functionality of the Android mobile app. Users can:
- Search for restaurants based on cuisine, time of day, and other preferences through an intuitive web interface.
3. Backend
The backend server handles the recommendation logic and processes queries from both the mobile app and web interface. The key features include:
- Collaborative filtering engine: The server runs the collaborative filtering model to provide personalized restaurant recommendations based on user preferences and data.
- Minimal data exchange: The backend only receives a minimal complemented query from the mobile app or web interface, ensuring that sensitive user data remains on the user's device.
- Contextual post-filtering: After the server processes the query, the results are adjusted locally on the user's phone, taking into account contextual information like calendar events and sentiment analysis from user interactions.
- Database of restaurants: The backend stores a database of restaurants, sourced from TripAdvisorincluding information like cuisine type, ratings, and operating hours. A subset of this data is downloaded and maintained locally to improve search efficiency and privacy at the edge (on-device or on-region servers).
Files
OWS.zip
Files
(279.1 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:c39fb78b2a80b2a9b22b732d891285a1
|
20.5 MB | Download |
|
md5:706f50ca470058469a3072a53e36254f
|
258.6 MB | Preview Download |
Additional details
Software
- Repository URL
- https://github.com/HUMADEX/OWS
- Programming language
- Python , Kotlin , JavaScript , Java