GigMatch Pro is a scalable gig economy simulation platform developed in Java, inspired by real-world service marketplaces. The system efficiently matches customers with skilled freelancers using a sophisticated ranking algorithm.
The project simulates a dynamic marketplace where thousands of requests, job completions, and cancellations occur, requiring optimized data structures to handle high-load scenarios within strict time limits.
- [cite_start]Smart Matching Engine: Utilizes a Integer Composite Score algorithm to rank freelancers based on skills, ratings, reliability, and burnout status[cite: 809].
- [cite_start]Dynamic Skill Evolution: Freelancers' skills (Technical, Communication, Creativity, Efficiency, Attention to Detail) evolve dynamically based on job performance and customer ratings[cite: 561, 580].
- Simulation Mechanics:
- [cite_start]Burnout System: Freelancers experience performance drops if overworked[cite: 522].
- [cite_start]Loyalty Tiers: Customers gain status (Bronze, Silver, Gold, Platinum) and discounts based on spending[cite: 854, 857].
- [cite_start]Time Simulation: A
simulate_monthfeature processes long-term changes like skill updates and loyalty calculations[cite: 539].
- [cite_start]Service Variety: Supports 10 different service types (e.g., Web Development, Painting, Tutoring) with unique skill requirement profiles[cite: 529].
- Language: Java
- Architecture: Object-Oriented Design (Freelancer, Customer, Service classes)
- [cite_start]Data Structures: Custom implementations using
ArrayList(Strict constraint: No other Java Collections allowed)[cite: 926]. - [cite_start]Performance: Designed to handle ~500,000 operations (Large Test Case) efficiently[cite: 911].
The system processes commands from an input file to manage the marketplace lifecycle:
- Registration:
register_freelancer/register_customer - Job Request:
request_job(Automatically finds and employs the best candidate) - Operations:
complete_and_rate,cancel_by_customer,cancel_by_freelancer - Analysis:
query_freelancer,query_customer,find_winning
- Clone the repository:
git clone [https://github.com/Nisanurdogan38618/Freelancer-Customer-Matching.git](https://github.com/Nisanurdogan38618/Freelancer-Customer-Matching.git)
- Navigate to the source folder:
cd src - Compile the project:
javac *.java - Run with input/output files:
java Main input.txt output.txt
This project was developed as part of the CMPE250 Data Structures and Algorithms course (Fall 2025).