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
- css
- openstreetmap
- react
- supabase
- tailwind
Log in or sign up for Devpost to join the conversation.