File size: 11,268 Bytes
fdf5af0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
"""
Generate synthetic gig economy data for testing
Creates 50 worker profiles and 50 gig posts with realistic variety
"""

import json
import random

# Skills by category
HANDYMAN_SKILLS = ["Plumbing", "Electrical Work", "Carpentry", "Painting", "Drywall", "Tile Work", "Door Installation", "Window Repair"]
GARDENING_SKILLS = ["Lawn Mowing", "Tree Pruning", "Garden Design", "Plant Care", "Landscaping", "Hedge Trimming", "Weeding", "Irrigation"]
PHOTO_SKILLS = ["Event Photography", "Portrait Photography", "Photo Editing", "Lighting", "Drone Photography", "Wedding Photography", "Product Photography"]
PET_SKILLS = ["Dog Walking", "Pet Sitting", "Cat Care", "Basic Pet Training", "Pet First Aid", "Grooming", "Bird Care"]
MOVING_SKILLS = ["Furniture Moving", "Packing", "Heavy Lifting", "Van Transport", "Assembly", "Disassembly", "Storage"]
CLEANING_SKILLS = ["Deep Cleaning", "Regular Cleaning", "Organization", "Ironing", "Window Cleaning", "Carpet Cleaning", "Eco-friendly Products"]
FURNITURE_SKILLS = ["Custom Furniture", "Furniture Repair", "Wood Working", "Furniture Refinishing", "Upholstery", "Cabinet Making"]
ART_SKILLS = ["Mural Painting", "Portrait Art", "Interior Painting", "Canvas Art", "Custom Artwork", "Decorative Painting", "Restoration"]
TECH_SKILLS = ["Computer Repair", "TV Installation", "Smart Home Setup", "Network Setup", "Printer Repair", "Data Recovery"]
TUTORING_SKILLS = ["Math Tutoring", "Language Teaching", "Music Lessons", "Art Classes", "Homework Help", "Test Prep"]

# Cities in Europe
CITIES = [
    "Rome, Italy", "Milan, Italy", "Florence, Italy", "Venice, Italy", "Naples, Italy",
    "Paris, France", "Lyon, France", "Marseille, France", "Nice, France",
    "Madrid, Spain", "Barcelona, Spain", "Valencia, Spain", "Seville, Spain",
    "Berlin, Germany", "Munich, Germany", "Hamburg, Germany", "Frankfurt, Germany",
    "Amsterdam, Netherlands", "Vienna, Austria", "Brussels, Belgium", "Lisbon, Portugal"
]

# First names by origin
FIRST_NAMES = [
    "Marco", "Sofia", "Luca", "Giulia", "Alessandro", "Francesca", "Lorenzo", "Elena",
    "Pierre", "Marie", "Jean", "Sophie", "Antoine", "Camille", "Lucas", "Emma",
    "Carlos", "Maria", "Diego", "Ana", "Pablo", "Carmen", "Miguel", "Laura",
    "Hans", "Anna", "Klaus", "Petra", "Lukas", "Julia", "Felix", "Nina",
    "Ahmed", "Fatima", "Omar", "Leila", "Hassan", "Aisha", "Thomas", "Isabella"
]

LAST_NAMES = [
    "Rossi", "Ferrari", "Russo", "Bianchi", "Romano", "Conti", "Ricci", "Marino",
    "Dupont", "Martin", "Bernard", "Dubois", "Laurent", "Moreau", "Simon", "Michel",
    "Garcia", "Rodriguez", "Martinez", "Sanchez", "Lopez", "Gonzalez", "Perez", "Torres",
    "Müller", "Schmidt", "Schneider", "Fischer", "Weber", "Meyer", "Wagner", "Becker",
    "Hassan", "Ali", "Ibrahim", "Ahmed", "Khan", "Patel", "Chen", "Wang"
]

def generate_workers(n=50):
    """Generate n worker profiles"""
    workers = []
    
    categories = [
        ("Handyman & Home Repairs", HANDYMAN_SKILLS),
        ("Gardener & Landscaper", GARDENING_SKILLS),
        ("Photographer", PHOTO_SKILLS),
        ("Pet Care Specialist", PET_SKILLS),
        ("Moving & Delivery", MOVING_SKILLS),
        ("House Cleaner", CLEANING_SKILLS),
        ("Furniture Specialist", FURNITURE_SKILLS),
        ("Artist & Painter", ART_SKILLS),
        ("Tech Support", TECH_SKILLS),
        ("Tutor & Teacher", TUTORING_SKILLS),
    ]
    
    for i in range(n):
        category = random.choice(categories)
        title, skill_pool = category
        
        # Select 3-6 random skills from the category
        num_skills = random.randint(3, 6)
        skills = random.sample(skill_pool, min(num_skills, len(skill_pool)))
        
        # Sometimes add skills from another category (versatile workers)
        if random.random() > 0.7:
            other_category = random.choice(categories)
            skills.append(random.choice(other_category[1]))
        
        experience_years = random.randint(2, 20)
        hourly_rate = random.randint(15, 50)
        
        worker = {
            "id": f"w{i+1}",
            "name": f"{random.choice(FIRST_NAMES)} {random.choice(LAST_NAMES)}",
            "title": title,
            "skills": skills,
            "experience": f"{experience_years} years",
            "location": random.choice(CITIES),
            "hourly_rate": f"€{hourly_rate}/hour",
            "availability": random.choice(["Full-time", "Part-time", "Weekends only", "Flexible", "Evenings & Weekends"]),
            "bio": f"Experienced {title.lower()} with {experience_years} years in the field"
        }
        workers.append(worker)
    
    return workers

def generate_gigs(n=50):
    """Generate n gig posts"""
    gigs = []
    
    gig_templates = [
        # Handyman jobs
        ("Bathroom Plumbing Repair", "Private Homeowner", ["Plumbing", "Pipe Repair"], "3+ years", 100, 250, "Half day"),
        ("Kitchen Renovation Help", "Apartment Owner", ["Carpentry", "Tile Work", "Painting"], "5+ years", 400, 800, "3-5 days"),
        ("Electrical Outlet Installation", "Home Owner", ["Electrical Work", "Installation"], "4+ years", 80, 150, "2-3 hours"),
        ("Fence Repair & Painting", "Property Owner", ["Carpentry", "Painting"], "3+ years", 150, 300, "1 day"),
        
        # Gardening jobs
        ("Weekly Lawn Maintenance", "Residential Property", ["Lawn Mowing", "Weeding"], "2+ years", 60, 100, "Ongoing"),
        ("Garden Redesign Project", "Villa Owner", ["Garden Design", "Landscaping", "Plant Care"], "5+ years", 500, 1000, "1-2 weeks"),
        ("Tree Removal & Stump Grinding", "Property Manager", ["Tree Pruning", "Heavy Equipment"], "6+ years", 300, 500, "1 day"),
        ("Spring Garden Cleanup", "Homeowner", ["Weeding", "Plant Care", "Cleanup"], "2+ years", 80, 150, "Half day"),
        
        # Photography jobs
        ("Birthday Party Photography", "Private Family", ["Event Photography", "Photo Editing"], "3+ years", 200, 350, "3-4 hours"),
        ("Real Estate Property Photos", "Real Estate Agent", ["Product Photography", "Photo Editing"], "3+ years", 150, 300, "Half day"),
        ("Family Portrait Session", "Family", ["Portrait Photography", "Lighting"], "4+ years", 180, 300, "2 hours"),
        ("Corporate Event Coverage", "Company", ["Event Photography", "Lighting"], "5+ years", 400, 700, "Full day"),
        
        # Pet care jobs
        ("Weekend Dog Sitting", "Pet Owner", ["Pet Sitting", "Dog Walking"], "2+ years", 80, 150, "2 days"),
        ("Daily Cat Feeding - 1 Week", "Traveling Owner", ["Cat Care", "Pet Sitting"], "1+ years", 100, 150, "1 week"),
        ("Puppy Training Sessions", "New Dog Owner", ["Basic Pet Training", "Dog Walking"], "4+ years", 200, 350, "4 sessions"),
        ("Multiple Pet Care", "Pet Owner", ["Dog Walking", "Cat Care", "Pet Sitting"], "3+ years", 120, 200, "10 days"),
        
        # Moving jobs
        ("Studio Apartment Move", "Student", ["Furniture Moving", "Packing"], "2+ years", 150, 250, "Half day"),
        ("Piano Moving Service", "Homeowner", ["Heavy Lifting", "Special Equipment"], "5+ years", 200, 400, "2-3 hours"),
        ("Office Furniture Relocation", "Small Business", ["Furniture Moving", "Assembly"], "4+ years", 300, 500, "1 day"),
        ("Storage Unit to Apartment", "Individual", ["Moving", "Heavy Lifting"], "2+ years", 180, 300, "Half day"),
        
        # Cleaning jobs
        ("Post-Party Cleaning", "Event Host", ["Deep Cleaning", "Organization"], "2+ years", 80, 150, "3-4 hours"),
        ("Move-Out Deep Clean", "Apartment Tenant", ["Deep Cleaning", "Window Cleaning"], "3+ years", 150, 250, "Full day"),
        ("Weekly House Cleaning", "Busy Family", ["Regular Cleaning", "Organization"], "2+ years", 70, 120, "Ongoing"),
        ("Commercial Office Cleaning", "Office Manager", ["Regular Cleaning", "Eco-friendly"], "3+ years", 200, 350, "Evening shift"),
        
        # Furniture jobs
        ("Custom Dining Table", "Homeowner", ["Custom Furniture", "Wood Working"], "6+ years", 600, 1200, "2 weeks"),
        ("Antique Chair Restoration", "Collector", ["Furniture Repair", "Upholstery"], "8+ years", 250, 500, "1 week"),
        ("Built-in Closet System", "Apartment Owner", ["Custom Furniture", "Cabinet Making"], "5+ years", 800, 1500, "1 week"),
        ("Furniture Refinishing", "Homeowner", ["Furniture Refinishing", "Wood Working"], "4+ years", 200, 400, "3-5 days"),
        
        # Art jobs
        ("Living Room Feature Wall", "Homeowner", ["Mural Painting", "Interior Painting"], "4+ years", 400, 700, "2-3 days"),
        ("Restaurant Interior Mural", "Restaurant Owner", ["Mural Painting", "Custom Artwork"], "6+ years", 1000, 2000, "1-2 weeks"),
        ("Portrait Commission", "Private Client", ["Portrait Art", "Canvas Art"], "5+ years", 300, 600, "2 weeks"),
        ("Kid's Playroom Decoration", "Parents", ["Mural Painting", "Decorative Painting"], "3+ years", 250, 450, "2 days"),
        
        # Tech jobs
        ("Home Network Setup", "Homeowner", ["Network Setup", "Smart Home Setup"], "3+ years", 100, 200, "2-3 hours"),
        ("Computer Virus Removal", "Individual", ["Computer Repair", "Data Recovery"], "4+ years", 60, 120, "1-2 hours"),
        ("TV Wall Mounting & Setup", "Apartment Owner", ["TV Installation", "Cable Management"], "2+ years", 80, 150, "2 hours"),
        ("Smart Home Integration", "Tech Enthusiast", ["Smart Home Setup", "Network Setup"], "5+ years", 200, 400, "Half day"),
        
        # Tutoring jobs
        ("High School Math Tutoring", "Student Parent", ["Math Tutoring", "Homework Help"], "3+ years", 150, 300, "4 weeks"),
        ("Piano Lessons for Beginner", "Adult Learner", ["Music Lessons"], "4+ years", 200, 350, "8 sessions"),
        ("Italian Language Teaching", "Expat", ["Language Teaching"], "3+ years", 180, 300, "6 weeks"),
        ("SAT Test Preparation", "High School Senior", ["Test Prep", "Math Tutoring"], "5+ years", 300, 500, "6 weeks"),
    ]
    
    for i in range(n):
        template = random.choice(gig_templates)
        title, company, skills, exp, min_budget, max_budget, duration = template
        
        # Add some variation to titles
        variations = ["", " Needed", " Required", " - Urgent", " - Flexible Schedule"]
        title_variation = title + random.choice(variations)
        
        gig = {
            "id": f"j{i+1}",
            "title": title_variation,
            "company": company,
            "required_skills": skills,
            "experience_level": exp,
            "location": random.choice(CITIES),
            "budget": f"€{min_budget}-{max_budget}",
            "duration": duration,
            "description": f"{title} - {', '.join(skills)} expertise needed"
        }
        gigs.append(gig)
    
    return gigs

if __name__ == "__main__":
    # Generate data
    workers = generate_workers(50)
    gigs = generate_gigs(50)
    
    # Save to JSON files
    with open("workers_data.json", "w") as f:
        json.dump(workers, f, indent=2)
    
    with open("gigs_data.json", "w") as f:
        json.dump(gigs, f, indent=2)
    
    print(f"✅ Generated {len(workers)} workers and {len(gigs)} gigs")
    print(f"📁 Saved to workers_data.json and gigs_data.json")