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

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