Key Features

Photographer Discovery

Browse Photographer Profiles: Clients can view photographer profiles in one central platform instead of searching through scattered Instagram pages, websites, or word-of-mouth recommendations.

Portfolio Viewing: Each photographer can showcase their work through portfolio images, allowing clients to understand their photography style before making an enquiry.

Guest Access: Users can browse parts of the platform as guests before deciding to create an account or submit a booking request.

Smart Match Recommendation

Personalised Photographer Matching: Clients answer Smart Match questions based on their shoot type, location, budget, preferred style, and requirements.

Top 3 Photographer Recommendations: The system recommends three suitable photographers for clients who are unsure who to choose or want faster suggestions based on their needs.

Simplified Decision-Making: Smart Match reduces the time needed to manually compare many photographers by guiding clients toward more relevant options.

Photographer Comparison

Shortlist and Compare: Clients can compare selected photographers side by side before deciding who to contact or book.

Key Comparison Details: The comparison focuses on useful decision factors such as photography style, price range, location, availability, portfolio, and deliverables.

Clearer Client Choice: This helps clients make more confident decisions instead of relying only on visual impressions or scattered information.

Booking and Enquiry System

Booking Request Submission: Clients can submit booking enquiries directly through the platform with relevant shoot details.

Structured Shoot Information: Enquiries can include details such as shoot type, preferred date, location, budget, and special requirements.

Centralised Booking Flow: The platform helps organise the process from finding a photographer to making an enquiry and moving toward a confirmed shoot.

Photographer Portfolio Management

Profile Management: Photographers can create and update their public profiles with personal details, services, pricing information, and portfolio content.

Portfolio Uploads: Photographers can upload images to showcase their previous work and attract potential clients.

Professional Online Presence: This gives photographers a cleaner and more organised way to present themselves compared to relying only on social media.

Messaging and Workflow Tracking

Client-Photographer Communication: Clients and photographers can communicate through the platform after an enquiry or booking request is made.

Simple Workflow Stages: The booking journey is organised using clear stages such as Quoting, Shoot Prep, and Finished.

Shoot Preparation Support: Photographers can provide preparation notes, such as what to wear, props needed, timing details, and important reminders before the shoot.

Job Requests and Opportunities

Client Job Listings: Clients can create job requests based on their photography needs.

Photographer Opportunity Page: Photographers can view available job requests and respond to opportunities that match their services.

Location-Based Discovery: Job requests can be connected with location features to help photographers find nearby opportunities.

Calendar and Availability

Photographer Availability Management: Photographers can manage their availability by marking dates as open, booked, or blocked.

Clear Availability View: Clients can better understand when a photographer may be available before making a booking enquiry.

Reduced Back-and-Forth: Availability visibility helps reduce unnecessary messages about unavailable dates.

Challenges Faced

Organising Data Across Different User Roles

PhotoMatch supports multiple user types, including guests, clients, and photographers. One challenge was structuring the data clearly so that each role has access to the correct pages, profiles, bookings, enquiries, and workflow information.

Managing Portfolio Images

Since the platform is media-heavy, portfolio images need to be stored properly and connected to photographer profiles. This required using Supabase Storage for image files and Supabase Postgres for portfolio metadata.

Making the Booking Flow Simple

A photography booking process can become complicated if there are too many statuses or steps. The workflow had to be simplified so that users can easily understand the process from enquiry to shoot completion.

Creating a Clean User Interface

The platform contains many features, including listings, portfolios, messaging, dashboards, and maps. A key challenge was keeping the interface clean, professional, and easy to use without making the pages feel crowded.

Future Roadmap

Improved Smart Match Accuracy

Enhance the recommendation logic so that photographer suggestions become more accurate based on style, budget, location, availability, and client preferences.

Review and Rating System

Allow clients to leave reviews after completed shoots so future clients can make more informed decisions.

Payment and Deposit System

Add payment or deposit features to make the booking process more complete and reliable.

Advanced Photographer Dashboard

Provide photographers with better analytics, enquiry tracking, profile performance, and booking insights.

Full Shoot Completion Workflow

Improve the end-to-end process so PhotoMatch can support the full journey from photographer discovery, Smart Match recommendation, comparison, enquiry, booking confirmation, shoot preparation, and final shoot completion.

Tech Stack

Component Technology Used
Frontend React.js + Vite
Styling Tailwind CSS
Backend Platform Supabase
Database Supabase Postgres
Authentication Supabase Auth
Media Storage Supabase Storage
Maps OpenStreetMap
Geocoding Nominatim
Smart Match Logic Application-layer recommendation logic
Browser Storage localStorage + IndexedDB
Version Control Git + GitHub

Built With

  • React.js
  • Vite
  • Tailwind CSS
  • Supabase
  • Supabase Auth
  • Supabase Postgres
  • Supabase Storage
  • OpenStreetMap
  • Nominatim
  • localStorage
  • IndexedDB
  • Git
  • GitHub

Built With

Share this project:

Updates