fixes
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
<div class="flex justify-between items-start mb-3">
|
||||
<div class="flex-1">
|
||||
<h3 class="text-lg font-semibold text-gray-900 mb-1">
|
||||
<a href="{{ route('jobs.show', $job->id) }}" class="hover:text-emerald-600">
|
||||
<a href="{{ route('jobs.show', $job) }}" class="hover:text-emerald-600">
|
||||
{{ $job->title }}
|
||||
</a>
|
||||
</h3>
|
||||
@@ -71,7 +71,7 @@
|
||||
<span class="text-xs text-gray-500">
|
||||
Posted {{ $job->posted_at ? $job->posted_at->diffForHumans() : $job->created_at->diffForHumans() }}
|
||||
</span>
|
||||
<a href="{{ route('jobs.show', $job->id) }}"
|
||||
<a href="{{ route('jobs.show', $job) }}"
|
||||
class="inline-flex items-center px-4 py-2 bg-emerald-600 hover:bg-emerald-700 text-white text-sm font-medium rounded-md transition-colors duration-200">
|
||||
View Details
|
||||
<svg class="ml-2 w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
|
||||
+104
-16
@@ -37,35 +37,123 @@
|
||||
<!-- Hero Section -->
|
||||
<div class="bg-gradient-to-r from-emerald-600 to-emerald-500">
|
||||
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-16 sm:py-24">
|
||||
<div class="text-center">
|
||||
<div class="text-center mb-10">
|
||||
<h1 class="text-4xl sm:text-5xl lg:text-6xl font-bold text-white mb-6">
|
||||
Find Your Dream Job
|
||||
</h1>
|
||||
<p class="text-xl text-emerald-50 mb-8 max-w-2xl mx-auto">
|
||||
<p class="text-xl text-emerald-50 max-w-2xl mx-auto">
|
||||
Search through thousands of job listings from multiple sources. Your next career opportunity is just a search away.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<!-- Search Bar -->
|
||||
<div class="max-w-3xl mx-auto">
|
||||
<form action="{{ route('jobs.index') }}" method="GET" class="flex flex-col sm:flex-row gap-2">
|
||||
<div class="flex-1">
|
||||
<input type="text"
|
||||
name="keywords"
|
||||
placeholder="Job title, keywords, or company"
|
||||
class="w-full px-4 py-3 rounded-lg border-0 focus:ring-2 focus:ring-emerald-600 text-gray-900 placeholder-gray-500">
|
||||
<!-- Advanced Search Form -->
|
||||
<div class="max-w-5xl mx-auto">
|
||||
<form action="{{ route('jobs.index') }}" method="GET" class="bg-white rounded-xl shadow-2xl p-6 space-y-4">
|
||||
<!-- Main Search Field -->
|
||||
<div>
|
||||
<input type="text"
|
||||
name="keywords"
|
||||
placeholder="Job title, keywords, or company..."
|
||||
class="w-full px-4 py-4 text-lg rounded-lg border border-gray-300 focus:ring-2 focus:ring-emerald-500 focus:border-emerald-500 text-gray-900 placeholder-gray-500">
|
||||
</div>
|
||||
|
||||
<!-- Filter Grid -->
|
||||
<div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-3">
|
||||
<!-- Category -->
|
||||
<div>
|
||||
<select name="category_id"
|
||||
class="w-full px-4 py-3 rounded-lg border border-gray-300 focus:ring-2 focus:ring-emerald-500 focus:border-emerald-500 text-gray-700 bg-white">
|
||||
<option value="">All Categories</option>
|
||||
@foreach($categories as $category)
|
||||
<option value="{{ $category->id }}">{{ $category->name }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
<div class="flex-1">
|
||||
|
||||
<!-- Location -->
|
||||
<div>
|
||||
<input type="text"
|
||||
name="location"
|
||||
placeholder="Location"
|
||||
class="w-full px-4 py-3 rounded-lg border-0 focus:ring-2 focus:ring-emerald-600 text-gray-900 placeholder-gray-500">
|
||||
class="w-full px-4 py-3 rounded-lg border border-gray-300 focus:ring-2 focus:ring-emerald-500 focus:border-emerald-500 text-gray-700 placeholder-gray-500">
|
||||
</div>
|
||||
|
||||
<!-- Job Type -->
|
||||
<div>
|
||||
<select name="job_type"
|
||||
class="w-full px-4 py-3 rounded-lg border border-gray-300 focus:ring-2 focus:ring-emerald-500 focus:border-emerald-500 text-gray-700 bg-white">
|
||||
<option value="">All Job Types</option>
|
||||
@foreach($jobTypes as $type)
|
||||
<option value="{{ $type }}">{{ ucfirst(str_replace('_', ' ', $type)) }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<!-- Experience Level -->
|
||||
<div>
|
||||
<select name="experience_level"
|
||||
class="w-full px-4 py-3 rounded-lg border border-gray-300 focus:ring-2 focus:ring-emerald-500 focus:border-emerald-500 text-gray-700 bg-white">
|
||||
<option value="">All Experience Levels</option>
|
||||
@foreach($experienceLevels as $level)
|
||||
<option value="{{ $level }}">{{ ucfirst($level) }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Additional Filters Row -->
|
||||
<div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-3">
|
||||
<!-- Remote -->
|
||||
<div>
|
||||
<select name="remote"
|
||||
class="w-full px-4 py-3 rounded-lg border border-gray-300 focus:ring-2 focus:ring-emerald-500 focus:border-emerald-500 text-gray-700 bg-white">
|
||||
<option value="">Remote/On-site</option>
|
||||
<option value="1">Remote Only</option>
|
||||
<option value="0">On-site Only</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<!-- Posted Within -->
|
||||
<div>
|
||||
<select name="posted_within"
|
||||
class="w-full px-4 py-3 rounded-lg border border-gray-300 focus:ring-2 focus:ring-emerald-500 focus:border-emerald-500 text-gray-700 bg-white">
|
||||
<option value="">Any Time</option>
|
||||
<option value="1">Last 24 hours</option>
|
||||
<option value="7">Last 7 days</option>
|
||||
<option value="30">Last 30 days</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<!-- Salary Min -->
|
||||
<div>
|
||||
<input type="number"
|
||||
name="salary_min"
|
||||
placeholder="Min Salary"
|
||||
class="w-full px-4 py-3 rounded-lg border border-gray-300 focus:ring-2 focus:ring-emerald-500 focus:border-emerald-500 text-gray-700 placeholder-gray-500">
|
||||
</div>
|
||||
|
||||
<!-- Salary Max -->
|
||||
<div>
|
||||
<input type="number"
|
||||
name="salary_max"
|
||||
placeholder="Max Salary"
|
||||
class="w-full px-4 py-3 rounded-lg border border-gray-300 focus:ring-2 focus:ring-emerald-500 focus:border-emerald-500 text-gray-700 placeholder-gray-500">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Search Button -->
|
||||
<div class="flex justify-center pt-2">
|
||||
<button type="submit"
|
||||
class="px-8 py-3 bg-emerald-800 hover:bg-emerald-900 text-white font-semibold rounded-lg transition-colors duration-200">
|
||||
Search Jobs
|
||||
class="px-12 py-4 bg-emerald-600 hover:bg-emerald-700 text-white text-lg font-semibold rounded-lg transition-colors duration-200 shadow-lg hover:shadow-xl">
|
||||
<span class="flex items-center">
|
||||
<svg class="w-5 h-5 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path>
|
||||
</svg>
|
||||
Search Jobs
|
||||
</span>
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "CollectionPage",
|
||||
"{{ '@' }}context": "https://schema.org",
|
||||
"{{ '@' }}type": "CollectionPage",
|
||||
"name": "{{ $category->name }} Jobs",
|
||||
"description": "{{ 'Browse ' . $jobs->total() . ' ' . $category->name . ' job opportunities' }}",
|
||||
"url": "{{ route('jobs.category', $category->slug) }}"
|
||||
|
||||
@@ -14,8 +14,8 @@
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "CollectionPage",
|
||||
"{{ '@' }}context": "https://schema.org",
|
||||
"{{ '@' }}type": "CollectionPage",
|
||||
"name": "Browse Jobs",
|
||||
"description": "Browse thousands of job opportunities from multiple sources",
|
||||
"url": "{{ route('jobs.index') }}"
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "CollectionPage",
|
||||
"{{ '@' }}context": "https://schema.org",
|
||||
"{{ '@' }}type": "CollectionPage",
|
||||
"name": "Remote Jobs",
|
||||
"description": "Work from anywhere remote job opportunities",
|
||||
"url": "{{ route('jobs.remote') }}"
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
@section('title', $job->title . ' at ' . $job->company . ' - JobifyGarden')
|
||||
@section('description', Str::limit(strip_tags($job->description), 155))
|
||||
@section('canonical', route('jobs.show', $job->id))
|
||||
@section('canonical', route('jobs.show', $job))
|
||||
|
||||
@push('structured_data')
|
||||
<script type="application/ld+json">
|
||||
@@ -20,7 +20,7 @@
|
||||
$breadcrumbsArray[] = ['name' => $job->category->name, 'url' => route('jobs.category', $job->category->slug)];
|
||||
}
|
||||
|
||||
$breadcrumbsArray[] = ['name' => $job->title, 'url' => route('jobs.show', $job->id)];
|
||||
$breadcrumbsArray[] = ['name' => $job->title, 'url' => route('jobs.show', $job)];
|
||||
|
||||
@endphp
|
||||
{!! json_encode(app(\App\Services\SeoService::class)->generateBreadcrumbStructuredData($breadcrumbsArray), JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT) !!}
|
||||
@@ -111,10 +111,24 @@
|
||||
</div>
|
||||
|
||||
<!-- Job Description -->
|
||||
<div class="prose prose-emerald max-w-none mb-8">
|
||||
<div class="mb-8">
|
||||
<h3 class="text-xl font-semibold text-gray-900 mb-4">Job Description</h3>
|
||||
<div class="text-gray-700 leading-relaxed">
|
||||
{!! nl2br(e($job->description)) !!}
|
||||
<div class="prose prose-emerald prose-lg max-w-none text-gray-700">
|
||||
{!! Str::of($job->description)
|
||||
->pipe(function($desc) {
|
||||
// Allow safe HTML tags
|
||||
return strip_tags($desc, '<p><br><ul><ol><li><strong><b><em><i><h1><h2><h3><h4><h5><h6><a><div><span>');
|
||||
})
|
||||
->pipe(function($desc) {
|
||||
// Convert remaining newlines to paragraphs if no HTML structure
|
||||
if (!str_contains($desc, '<p>') && !str_contains($desc, '<div>')) {
|
||||
$paragraphs = array_filter(explode("\n\n", $desc));
|
||||
return '<p>' . implode('</p><p>', array_map(fn($p) => nl2br(trim($p)), $paragraphs)) . '</p>';
|
||||
}
|
||||
return $desc;
|
||||
})
|
||||
->toString()
|
||||
!!}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -159,12 +173,12 @@
|
||||
<div class="bg-white rounded-lg shadow-sm border border-gray-200 p-6">
|
||||
<h3 class="text-sm font-semibold text-gray-900 mb-3">Share this job</h3>
|
||||
<div class="flex gap-2">
|
||||
<a href="https://twitter.com/intent/tweet?text={{ urlencode($job->title . ' at ' . $job->company) }}&url={{ urlencode(route('jobs.show', $job->id)) }}"
|
||||
<a href="https://twitter.com/intent/tweet?text={{ urlencode($job->title . ' at ' . $job->company) }}&url={{ urlencode(route('jobs.show', $job)) }}"
|
||||
target="_blank"
|
||||
class="flex-1 px-3 py-2 bg-blue-500 hover:bg-blue-600 text-white text-center rounded text-sm">
|
||||
Twitter
|
||||
</a>
|
||||
<a href="https://www.linkedin.com/sharing/share-offsite/?url={{ urlencode(route('jobs.show', $job->id)) }}"
|
||||
<a href="https://www.linkedin.com/sharing/share-offsite/?url={{ urlencode(route('jobs.show', $job)) }}"
|
||||
target="_blank"
|
||||
class="flex-1 px-3 py-2 bg-blue-700 hover:bg-blue-800 text-white text-center rounded text-sm">
|
||||
LinkedIn
|
||||
@@ -173,10 +187,90 @@
|
||||
</div>
|
||||
|
||||
<!-- Report -->
|
||||
<div class="bg-white rounded-lg shadow-sm border border-gray-200 p-6">
|
||||
<button class="text-sm text-red-600 hover:text-red-700">
|
||||
<div class="bg-white rounded-lg shadow-sm border border-gray-200 p-6" x-data="{ showReportModal: false }">
|
||||
<button @click="showReportModal = true" class="text-sm text-red-600 hover:text-red-700">
|
||||
Report this job
|
||||
</button>
|
||||
|
||||
<!-- Report Modal -->
|
||||
<div x-show="showReportModal"
|
||||
x-cloak
|
||||
@click.away="showReportModal = false"
|
||||
@keydown.escape.window="showReportModal = false"
|
||||
class="fixed inset-0 z-50 flex items-center justify-center p-4"
|
||||
style="display: none;">
|
||||
<!-- Overlay -->
|
||||
<div class="fixed inset-0 bg-black bg-opacity-50"></div>
|
||||
|
||||
<!-- Modal -->
|
||||
<div class="relative bg-white rounded-lg shadow-xl max-w-md w-full p-6">
|
||||
<div class="flex items-center justify-between mb-4">
|
||||
<h3 class="text-lg font-semibold text-gray-900">Report this job</h3>
|
||||
<button @click="showReportModal = false" class="text-gray-400 hover:text-gray-600">
|
||||
<svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<p class="text-sm text-gray-600 mb-4">
|
||||
Please select a reason for reporting this job posting:
|
||||
</p>
|
||||
|
||||
<form action="#" method="POST" class="space-y-4">
|
||||
@csrf
|
||||
<input type="hidden" name="job_id" value="{{ $job->id }}">
|
||||
|
||||
<div class="space-y-2">
|
||||
<label class="flex items-center">
|
||||
<input type="radio" name="reason" value="expired" class="mr-2" required>
|
||||
<span class="text-sm">Job posting has expired</span>
|
||||
</label>
|
||||
<label class="flex items-center">
|
||||
<input type="radio" name="reason" value="scam" class="mr-2" required>
|
||||
<span class="text-sm">Suspected scam or fraud</span>
|
||||
</label>
|
||||
<label class="flex items-center">
|
||||
<input type="radio" name="reason" value="duplicate" class="mr-2" required>
|
||||
<span class="text-sm">Duplicate posting</span>
|
||||
</label>
|
||||
<label class="flex items-center">
|
||||
<input type="radio" name="reason" value="inappropriate" class="mr-2" required>
|
||||
<span class="text-sm">Inappropriate content</span>
|
||||
</label>
|
||||
<label class="flex items-center">
|
||||
<input type="radio" name="reason" value="other" class="mr-2" required>
|
||||
<span class="text-sm">Other</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label for="details" class="block text-sm font-medium text-gray-700 mb-1">
|
||||
Additional details (optional)
|
||||
</label>
|
||||
<textarea id="details" name="details" rows="3"
|
||||
class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-emerald-500 focus:border-emerald-500"
|
||||
placeholder="Provide more information..."></textarea>
|
||||
</div>
|
||||
|
||||
<div class="flex gap-3">
|
||||
<button type="button"
|
||||
@click="showReportModal = false"
|
||||
class="flex-1 px-4 py-2 border border-gray-300 text-gray-700 rounded-lg hover:bg-gray-50">
|
||||
Cancel
|
||||
</button>
|
||||
<button type="submit"
|
||||
class="flex-1 px-4 py-2 bg-red-600 hover:bg-red-700 text-white rounded-lg">
|
||||
Submit Report
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<p class="text-xs text-gray-500 text-center">
|
||||
Thank you for helping us maintain quality job listings.
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -36,6 +36,11 @@
|
||||
<!-- Scripts -->
|
||||
@vite(['resources/css/app.css', 'resources/js/app.js'])
|
||||
|
||||
<!-- Alpine.js x-cloak CSS -->
|
||||
<style>
|
||||
[x-cloak] { display: none !important; }
|
||||
</style>
|
||||
|
||||
@stack('head')
|
||||
</head>
|
||||
<body class="h-full antialiased bg-gray-50">
|
||||
@@ -145,10 +150,10 @@
|
||||
<div>
|
||||
<h4 class="text-sm font-semibold text-gray-900 uppercase tracking-wider mb-4">Resources</h4>
|
||||
<ul class="space-y-2">
|
||||
<li><a href="#" class="text-gray-600 hover:text-emerald-600 text-sm">About Us</a></li>
|
||||
<li><a href="#" class="text-gray-600 hover:text-emerald-600 text-sm">Contact</a></li>
|
||||
<li><a href="#" class="text-gray-600 hover:text-emerald-600 text-sm">Privacy Policy</a></li>
|
||||
<li><a href="#" class="text-gray-600 hover:text-emerald-600 text-sm">Terms of Service</a></li>
|
||||
<li><a href="{{ route('about') }}" class="text-gray-600 hover:text-emerald-600 text-sm">About Us</a></li>
|
||||
<li><a href="{{ route('contact') }}" class="text-gray-600 hover:text-emerald-600 text-sm">Contact</a></li>
|
||||
<li><a href="{{ route('privacy') }}" class="text-gray-600 hover:text-emerald-600 text-sm">Privacy Policy</a></li>
|
||||
<li><a href="{{ route('terms') }}" class="text-gray-600 hover:text-emerald-600 text-sm">Terms of Service</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,76 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('title', 'About Us - JobifyGarden')
|
||||
@section('description', 'Learn about JobifyGarden, your trusted job aggregator platform connecting job seekers with opportunities from multiple sources.')
|
||||
@section('canonical', route('about'))
|
||||
|
||||
@section('content')
|
||||
<div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-12">
|
||||
<!-- Header -->
|
||||
<div class="text-center mb-12">
|
||||
<h1 class="text-4xl font-bold text-gray-900 mb-4">About JobifyGarden</h1>
|
||||
<p class="text-xl text-gray-600">Your trusted job aggregator platform</p>
|
||||
</div>
|
||||
|
||||
<!-- Content -->
|
||||
<div class="bg-white rounded-lg shadow-sm border border-gray-200 p-8 space-y-8">
|
||||
<!-- Mission Section -->
|
||||
<section>
|
||||
<h2 class="text-2xl font-semibold text-gray-900 mb-4">Our Mission</h2>
|
||||
<p class="text-gray-700 leading-relaxed">
|
||||
JobifyGarden was created with a simple mission: to make job searching easier and more efficient.
|
||||
We aggregate job listings from multiple trusted sources, bringing thousands of opportunities to
|
||||
one convenient platform. Whether you're looking for remote work, full-time positions, or freelance
|
||||
opportunities, we're here to help you find your next career move.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<!-- What We Do Section -->
|
||||
<section>
|
||||
<h2 class="text-2xl font-semibold text-gray-900 mb-4">What We Do</h2>
|
||||
<p class="text-gray-700 leading-relaxed mb-4">
|
||||
JobifyGarden aggregates job listings from various free job APIs and job boards, providing you with:
|
||||
</p>
|
||||
<ul class="list-disc list-inside space-y-2 text-gray-700 ml-4">
|
||||
<li>Access to thousands of job listings from multiple sources</li>
|
||||
<li>Advanced search and filtering capabilities</li>
|
||||
<li>Real-time job updates from trusted platforms</li>
|
||||
<li>Remote and on-site job opportunities across various industries</li>
|
||||
<li>Easy-to-use interface for efficient job hunting</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<!-- Why Choose Us Section -->
|
||||
<section>
|
||||
<h2 class="text-2xl font-semibold text-gray-900 mb-4">Why Choose JobifyGarden</h2>
|
||||
<div class="grid md:grid-cols-2 gap-6">
|
||||
<div class="bg-emerald-50 p-6 rounded-lg">
|
||||
<h3 class="font-semibold text-gray-900 mb-2">Comprehensive Coverage</h3>
|
||||
<p class="text-gray-700 text-sm">We aggregate jobs from multiple sources, so you don't have to visit multiple websites.</p>
|
||||
</div>
|
||||
<div class="bg-emerald-50 p-6 rounded-lg">
|
||||
<h3 class="font-semibold text-gray-900 mb-2">Always Up-to-Date</h3>
|
||||
<p class="text-gray-700 text-sm">Our automated system regularly fetches new job listings to keep our database current.</p>
|
||||
</div>
|
||||
<div class="bg-emerald-50 p-6 rounded-lg">
|
||||
<h3 class="font-semibold text-gray-900 mb-2">Smart Search</h3>
|
||||
<p class="text-gray-700 text-sm">Advanced filtering options help you find exactly what you're looking for quickly.</p>
|
||||
</div>
|
||||
<div class="bg-emerald-50 p-6 rounded-lg">
|
||||
<h3 class="font-semibold text-gray-900 mb-2">Free to Use</h3>
|
||||
<p class="text-gray-700 text-sm">All features are completely free. No hidden fees or premium subscriptions required.</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Contact CTA -->
|
||||
<section class="bg-gray-50 p-6 rounded-lg text-center">
|
||||
<h2 class="text-xl font-semibold text-gray-900 mb-3">Have Questions?</h2>
|
||||
<p class="text-gray-700 mb-4">We'd love to hear from you.</p>
|
||||
<a href="{{ route('contact') }}" class="inline-block px-6 py-3 bg-emerald-600 hover:bg-emerald-700 text-white font-semibold rounded-lg transition-colors duration-200">
|
||||
Contact Us
|
||||
</a>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -0,0 +1,122 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('title', 'Contact Us - JobifyGarden')
|
||||
@section('description', 'Get in touch with JobifyGarden. We\'re here to help with any questions or feedback you may have.')
|
||||
@section('canonical', route('contact'))
|
||||
|
||||
@section('content')
|
||||
<div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-12">
|
||||
<!-- Header -->
|
||||
<div class="text-center mb-12">
|
||||
<h1 class="text-4xl font-bold text-gray-900 mb-4">Contact Us</h1>
|
||||
<p class="text-xl text-gray-600">We'd love to hear from you</p>
|
||||
</div>
|
||||
|
||||
<div class="grid md:grid-cols-2 gap-8">
|
||||
<!-- Contact Information -->
|
||||
<div class="bg-white rounded-lg shadow-sm border border-gray-200 p-8">
|
||||
<h2 class="text-2xl font-semibold text-gray-900 mb-6">Get In Touch</h2>
|
||||
|
||||
<div class="space-y-6">
|
||||
<!-- Email -->
|
||||
<div class="flex items-start">
|
||||
<div class="flex-shrink-0">
|
||||
<svg class="w-6 h-6 text-emerald-600" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="ml-4">
|
||||
<h3 class="text-lg font-medium text-gray-900">Email</h3>
|
||||
<p class="text-gray-600">hello@jobifygarden.com</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Support -->
|
||||
<div class="flex items-start">
|
||||
<div class="flex-shrink-0">
|
||||
<svg class="w-6 h-6 text-emerald-600" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M18.364 5.636l-3.536 3.536m0 5.656l3.536 3.536M9.172 9.172L5.636 5.636m3.536 9.192l-3.536 3.536M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-5 0a4 4 0 11-8 0 4 4 0 018 0z"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="ml-4">
|
||||
<h3 class="text-lg font-medium text-gray-900">Support</h3>
|
||||
<p class="text-gray-600">support@jobifygarden.com</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Business Hours -->
|
||||
<div class="flex items-start">
|
||||
<div class="flex-shrink-0">
|
||||
<svg class="w-6 h-6 text-emerald-600" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="ml-4">
|
||||
<h3 class="text-lg font-medium text-gray-900">Response Time</h3>
|
||||
<p class="text-gray-600">We typically respond within 24-48 hours</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- FAQ Link -->
|
||||
<div class="mt-8 pt-8 border-t border-gray-200">
|
||||
<h3 class="text-lg font-medium text-gray-900 mb-2">Frequently Asked Questions</h3>
|
||||
<p class="text-gray-600 text-sm mb-4">
|
||||
Before reaching out, you might find answers to common questions in our FAQ section.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Contact Form -->
|
||||
<div class="bg-white rounded-lg shadow-sm border border-gray-200 p-8">
|
||||
<h2 class="text-2xl font-semibold text-gray-900 mb-6">Send Us a Message</h2>
|
||||
|
||||
<form class="space-y-6">
|
||||
<!-- Name -->
|
||||
<div>
|
||||
<label for="name" class="block text-sm font-medium text-gray-700 mb-2">Name</label>
|
||||
<input type="text" id="name" name="name"
|
||||
class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-emerald-500 focus:border-emerald-500"
|
||||
placeholder="Your name">
|
||||
</div>
|
||||
|
||||
<!-- Email -->
|
||||
<div>
|
||||
<label for="email" class="block text-sm font-medium text-gray-700 mb-2">Email</label>
|
||||
<input type="email" id="email" name="email"
|
||||
class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-emerald-500 focus:border-emerald-500"
|
||||
placeholder="your.email@example.com">
|
||||
</div>
|
||||
|
||||
<!-- Subject -->
|
||||
<div>
|
||||
<label for="subject" class="block text-sm font-medium text-gray-700 mb-2">Subject</label>
|
||||
<input type="text" id="subject" name="subject"
|
||||
class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-emerald-500 focus:border-emerald-500"
|
||||
placeholder="How can we help?">
|
||||
</div>
|
||||
|
||||
<!-- Message -->
|
||||
<div>
|
||||
<label for="message" class="block text-sm font-medium text-gray-700 mb-2">Message</label>
|
||||
<textarea id="message" name="message" rows="5"
|
||||
class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-emerald-500 focus:border-emerald-500"
|
||||
placeholder="Tell us more about your question or feedback..."></textarea>
|
||||
</div>
|
||||
|
||||
<!-- Submit Button -->
|
||||
<div>
|
||||
<button type="submit"
|
||||
class="w-full px-6 py-3 bg-emerald-600 hover:bg-emerald-700 text-white font-semibold rounded-lg transition-colors duration-200">
|
||||
Send Message
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<p class="text-xs text-gray-500 text-center">
|
||||
Note: This is a demo form. For actual inquiries, please email us directly at hello@jobifygarden.com
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -0,0 +1,120 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('title', 'Privacy Policy - JobifyGarden')
|
||||
@section('description', 'Read JobifyGarden\'s privacy policy to understand how we collect, use, and protect your information.')
|
||||
@section('canonical', route('privacy'))
|
||||
|
||||
@section('content')
|
||||
<div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-12">
|
||||
<!-- Header -->
|
||||
<div class="text-center mb-12">
|
||||
<h1 class="text-4xl font-bold text-gray-900 mb-4">Privacy Policy</h1>
|
||||
<p class="text-gray-600">Last updated: {{ now()->format('F d, Y') }}</p>
|
||||
</div>
|
||||
|
||||
<!-- Content -->
|
||||
<div class="bg-white rounded-lg shadow-sm border border-gray-200 p-8 prose prose-emerald max-w-none">
|
||||
<section class="mb-8">
|
||||
<h2 class="text-2xl font-semibold text-gray-900 mb-4">Introduction</h2>
|
||||
<p class="text-gray-700 leading-relaxed">
|
||||
JobifyGarden ("we", "our", or "us") is committed to protecting your privacy. This Privacy Policy
|
||||
explains how we collect, use, disclose, and safeguard your information when you visit our website.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section class="mb-8">
|
||||
<h2 class="text-2xl font-semibold text-gray-900 mb-4">Information We Collect</h2>
|
||||
|
||||
<h3 class="text-xl font-semibold text-gray-900 mb-3 mt-6">Usage Data</h3>
|
||||
<p class="text-gray-700 leading-relaxed mb-4">
|
||||
We may collect information that your browser sends whenever you visit our website. This may include:
|
||||
</p>
|
||||
<ul class="list-disc list-inside space-y-2 text-gray-700 ml-4 mb-4">
|
||||
<li>Your computer's Internet Protocol (IP) address</li>
|
||||
<li>Browser type and version</li>
|
||||
<li>Pages you visit on our site</li>
|
||||
<li>Time and date of your visit</li>
|
||||
<li>Time spent on pages</li>
|
||||
<li>Other diagnostic data</li>
|
||||
</ul>
|
||||
|
||||
<h3 class="text-xl font-semibold text-gray-900 mb-3 mt-6">Cookies and Tracking Technologies</h3>
|
||||
<p class="text-gray-700 leading-relaxed">
|
||||
We use cookies and similar tracking technologies to track activity on our website and store certain
|
||||
information. You can instruct your browser to refuse all cookies or to indicate when a cookie is
|
||||
being sent.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section class="mb-8">
|
||||
<h2 class="text-2xl font-semibold text-gray-900 mb-4">How We Use Your Information</h2>
|
||||
<p class="text-gray-700 leading-relaxed mb-4">
|
||||
We may use the information we collect for various purposes, including:
|
||||
</p>
|
||||
<ul class="list-disc list-inside space-y-2 text-gray-700 ml-4">
|
||||
<li>To provide and maintain our service</li>
|
||||
<li>To improve and personalize user experience</li>
|
||||
<li>To analyze how our service is used</li>
|
||||
<li>To monitor the usage of our service</li>
|
||||
<li>To detect, prevent and address technical issues</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section class="mb-8">
|
||||
<h2 class="text-2xl font-semibold text-gray-900 mb-4">Third-Party Services</h2>
|
||||
<p class="text-gray-700 leading-relaxed">
|
||||
JobifyGarden aggregates job listings from various third-party sources. When you click on a job
|
||||
listing to apply, you will be redirected to the original job posting on a third-party website.
|
||||
We are not responsible for the privacy practices of these third-party websites.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section class="mb-8">
|
||||
<h2 class="text-2xl font-semibold text-gray-900 mb-4">Data Security</h2>
|
||||
<p class="text-gray-700 leading-relaxed">
|
||||
The security of your data is important to us, but remember that no method of transmission over the
|
||||
Internet or method of electronic storage is 100% secure. While we strive to use commercially
|
||||
acceptable means to protect your information, we cannot guarantee its absolute security.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section class="mb-8">
|
||||
<h2 class="text-2xl font-semibold text-gray-900 mb-4">Links to Other Sites</h2>
|
||||
<p class="text-gray-700 leading-relaxed">
|
||||
Our service contains links to other sites (job postings from various sources). If you click on a
|
||||
third-party link, you will be directed to that site. We strongly advise you to review the Privacy
|
||||
Policy of every site you visit. We have no control over and assume no responsibility for the content,
|
||||
privacy policies, or practices of any third-party sites or services.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section class="mb-8">
|
||||
<h2 class="text-2xl font-semibold text-gray-900 mb-4">Children's Privacy</h2>
|
||||
<p class="text-gray-700 leading-relaxed">
|
||||
Our service is not intended for use by children under the age of 18. We do not knowingly collect
|
||||
personally identifiable information from children under 18. If you are a parent or guardian and you
|
||||
are aware that your child has provided us with personal data, please contact us.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section class="mb-8">
|
||||
<h2 class="text-2xl font-semibold text-gray-900 mb-4">Changes to This Privacy Policy</h2>
|
||||
<p class="text-gray-700 leading-relaxed">
|
||||
We may update our Privacy Policy from time to time. We will notify you of any changes by posting the
|
||||
new Privacy Policy on this page and updating the "Last updated" date at the top of this Privacy Policy.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section class="mb-8">
|
||||
<h2 class="text-2xl font-semibold text-gray-900 mb-4">Contact Us</h2>
|
||||
<p class="text-gray-700 leading-relaxed mb-4">
|
||||
If you have any questions about this Privacy Policy, please contact us:
|
||||
</p>
|
||||
<ul class="list-disc list-inside space-y-2 text-gray-700 ml-4">
|
||||
<li>By email: privacy@jobifygarden.com</li>
|
||||
<li>By visiting our <a href="{{ route('contact') }}" class="text-emerald-600 hover:text-emerald-700">contact page</a></li>
|
||||
</ul>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -0,0 +1,154 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('title', 'Terms of Service - JobifyGarden')
|
||||
@section('description', 'Read JobifyGarden\'s terms of service to understand the rules and regulations for using our platform.')
|
||||
@section('canonical', route('terms'))
|
||||
|
||||
@section('content')
|
||||
<div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-12">
|
||||
<!-- Header -->
|
||||
<div class="text-center mb-12">
|
||||
<h1 class="text-4xl font-bold text-gray-900 mb-4">Terms of Service</h1>
|
||||
<p class="text-gray-600">Last updated: {{ now()->format('F d, Y') }}</p>
|
||||
</div>
|
||||
|
||||
<!-- Content -->
|
||||
<div class="bg-white rounded-lg shadow-sm border border-gray-200 p-8 prose prose-emerald max-w-none">
|
||||
<section class="mb-8">
|
||||
<h2 class="text-2xl font-semibold text-gray-900 mb-4">Agreement to Terms</h2>
|
||||
<p class="text-gray-700 leading-relaxed">
|
||||
By accessing or using JobifyGarden, you agree to be bound by these Terms of Service and all
|
||||
applicable laws and regulations. If you do not agree with any of these terms, you are prohibited
|
||||
from using or accessing this site.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section class="mb-8">
|
||||
<h2 class="text-2xl font-semibold text-gray-900 mb-4">Use License</h2>
|
||||
<p class="text-gray-700 leading-relaxed mb-4">
|
||||
Permission is granted to temporarily access the materials (information or software) on JobifyGarden
|
||||
for personal, non-commercial transitory viewing only. This is the grant of a license, not a transfer
|
||||
of title, and under this license you may not:
|
||||
</p>
|
||||
<ul class="list-disc list-inside space-y-2 text-gray-700 ml-4">
|
||||
<li>Modify or copy the materials</li>
|
||||
<li>Use the materials for any commercial purpose or for any public display</li>
|
||||
<li>Attempt to reverse engineer any software contained on JobifyGarden</li>
|
||||
<li>Remove any copyright or other proprietary notations from the materials</li>
|
||||
<li>Transfer the materials to another person or "mirror" the materials on any other server</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section class="mb-8">
|
||||
<h2 class="text-2xl font-semibold text-gray-900 mb-4">Disclaimer</h2>
|
||||
<p class="text-gray-700 leading-relaxed mb-4">
|
||||
JobifyGarden is a job aggregation platform that collects and displays job listings from various
|
||||
third-party sources. We make no warranties or representations about:
|
||||
</p>
|
||||
<ul class="list-disc list-inside space-y-2 text-gray-700 ml-4 mb-4">
|
||||
<li>The accuracy, completeness, or reliability of job listings</li>
|
||||
<li>The availability of job positions</li>
|
||||
<li>The legitimacy of employers or job postings</li>
|
||||
<li>The outcome of any job application</li>
|
||||
</ul>
|
||||
<p class="text-gray-700 leading-relaxed">
|
||||
The materials on JobifyGarden are provided on an 'as is' basis. JobifyGarden makes no warranties,
|
||||
expressed or implied, and hereby disclaims and negates all other warranties including, without
|
||||
limitation, implied warranties or conditions of merchantability, fitness for a particular purpose,
|
||||
or non-infringement of intellectual property or other violation of rights.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section class="mb-8">
|
||||
<h2 class="text-2xl font-semibold text-gray-900 mb-4">Third-Party Content</h2>
|
||||
<p class="text-gray-700 leading-relaxed">
|
||||
All job listings displayed on JobifyGarden are sourced from third-party job boards and APIs.
|
||||
JobifyGarden does not create, verify, or endorse these job listings. When you apply for a job,
|
||||
you will be redirected to the original posting on a third-party website. We are not responsible
|
||||
for the content, accuracy, or practices of these third-party sites.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section class="mb-8">
|
||||
<h2 class="text-2xl font-semibold text-gray-900 mb-4">User Conduct</h2>
|
||||
<p class="text-gray-700 leading-relaxed mb-4">
|
||||
You agree not to use JobifyGarden to:
|
||||
</p>
|
||||
<ul class="list-disc list-inside space-y-2 text-gray-700 ml-4">
|
||||
<li>Violate any applicable laws or regulations</li>
|
||||
<li>Engage in any automated data collection (scraping, bots, etc.) without permission</li>
|
||||
<li>Transmit any harmful code, viruses, or malicious software</li>
|
||||
<li>Impersonate another person or entity</li>
|
||||
<li>Interfere with or disrupt the service or servers</li>
|
||||
<li>Attempt to gain unauthorized access to any part of the service</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section class="mb-8">
|
||||
<h2 class="text-2xl font-semibold text-gray-900 mb-4">Intellectual Property</h2>
|
||||
<p class="text-gray-700 leading-relaxed">
|
||||
The JobifyGarden name, logo, and all related names, logos, product and service names, designs, and
|
||||
slogans are trademarks of JobifyGarden or its affiliates. You must not use such marks without our
|
||||
prior written permission. All other names, logos, product and service names, designs, and slogans
|
||||
on this website are the trademarks of their respective owners.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section class="mb-8">
|
||||
<h2 class="text-2xl font-semibold text-gray-900 mb-4">Limitation of Liability</h2>
|
||||
<p class="text-gray-700 leading-relaxed">
|
||||
In no event shall JobifyGarden or its suppliers be liable for any damages (including, without
|
||||
limitation, damages for loss of data or profit, or due to business interruption) arising out of
|
||||
the use or inability to use JobifyGarden, even if JobifyGarden or a JobifyGarden authorized
|
||||
representative has been notified orally or in writing of the possibility of such damage.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section class="mb-8">
|
||||
<h2 class="text-2xl font-semibold text-gray-900 mb-4">Indemnification</h2>
|
||||
<p class="text-gray-700 leading-relaxed">
|
||||
You agree to indemnify, defend, and hold harmless JobifyGarden and its officers, directors, employees,
|
||||
and agents from and against any claims, liabilities, damages, losses, and expenses, including reasonable
|
||||
attorneys' fees, arising out of or in any way connected with your access to or use of the service.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section class="mb-8">
|
||||
<h2 class="text-2xl font-semibold text-gray-900 mb-4">Modifications to Service</h2>
|
||||
<p class="text-gray-700 leading-relaxed">
|
||||
JobifyGarden reserves the right to modify or discontinue, temporarily or permanently, the service
|
||||
(or any part thereof) with or without notice. You agree that JobifyGarden shall not be liable to
|
||||
you or to any third party for any modification, suspension, or discontinuance of the service.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section class="mb-8">
|
||||
<h2 class="text-2xl font-semibold text-gray-900 mb-4">Governing Law</h2>
|
||||
<p class="text-gray-700 leading-relaxed">
|
||||
These terms and conditions are governed by and construed in accordance with the laws of the
|
||||
United States, and you irrevocably submit to the exclusive jurisdiction of the courts in that location.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section class="mb-8">
|
||||
<h2 class="text-2xl font-semibold text-gray-900 mb-4">Changes to Terms</h2>
|
||||
<p class="text-gray-700 leading-relaxed">
|
||||
We reserve the right, at our sole discretion, to modify or replace these Terms at any time. If a
|
||||
revision is material, we will provide at least 30 days' notice prior to any new terms taking effect.
|
||||
What constitutes a material change will be determined at our sole discretion.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section class="mb-8">
|
||||
<h2 class="text-2xl font-semibold text-gray-900 mb-4">Contact Information</h2>
|
||||
<p class="text-gray-700 leading-relaxed mb-4">
|
||||
If you have any questions about these Terms, please contact us:
|
||||
</p>
|
||||
<ul class="list-disc list-inside space-y-2 text-gray-700 ml-4">
|
||||
<li>By email: legal@jobifygarden.com</li>
|
||||
<li>By visiting our <a href="{{ route('contact') }}" class="text-emerald-600 hover:text-emerald-700">contact page</a></li>
|
||||
</ul>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
Reference in New Issue
Block a user