Overview
Fork Finder is a social network designed for sharing restaurant reviews. The project was developed for the "Web Technologies" course exam and takes inspiration from the following project: finds.club.
The platform allows users to follow their friends or others with similar tastes and discover new restaurants. It also offers verified reviews by culinary critics, creating a trusted space for dining recommendations.
Tech Stack
- Django (Backend Framework)
- Bootstrap for responsive frontend design
- MapBox API for location-based restaurant suggestions
- SQLite database for storing user profiles, restaurants, and reviews
Functionality
Main Page
When users access Fork Finder, they can authenticate as regular users, culinary critics, or create a new profile. The feed, initially empty, populates with reviews from followed users and culinary critics. Users can also browse a separate "Explore" section with reviews recommended by the system. Each review can be favorited or viewed on a map.
Adding a Review
Users can write detailed reviews of restaurants. Culinary critics have additional rating fields for taste, presentation, and service. Reviews include a star rating and optional photos. Restaurants are selected using the MapBox API, with a map display for user confirmation.
Database
Database Structure
The application uses three main tables in the database: Profile, Review, and Restaurant. The Profile table extends the default user entity by adding fields for user type, location, and saved reviews. The Review table links users to specific restaurants and stores review details, while the Restaurant table holds geographic and name data about the reviewed locations.
SQLite
SQLite was chosen for its simplicity and portability within Django. Commands for populating and clearing the database are included in the management folder, ensuring smooth data handling during development.
Recommendation System
Criteria
The recommendation system suggests reviews based on three main factors: proximity of the restaurant to the user, the number of followers of the review author, and the review rating. The top ten reviews matching these criteria are shown in the "Explore" section.
Implementation
The system uses the Haversine formula to calculate the distance between the user and restaurants. A scoring function then ranks the reviews by multiplying the author’s follower count by the review rating, and dividing by the distance to the restaurant. This ensures relevant and highly rated reviews are prioritized.
Future Plans
Future improvements for Fork Finder include enhancing the recommendation system and implement a more robust authentication process for culinary critics.
View Code on GitHub