switched to php 8.3
This commit is contained in:
@@ -1,11 +1,214 @@
|
||||
<p align="center"><a href="https://laravel.com" target="_blank"><img src="https://raw.githubusercontent.com/laravel/art/master/logo-lockup/5%20SVG/2%20CMYK/1%20Full%20Color/laravel-logolockup-cmyk-red.svg" width="400" alt="Laravel Logo"></a></p>
|
||||
# JobifyGarden
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/laravel/framework/actions"><img src="https://github.com/laravel/framework/workflows/tests/badge.svg" alt="Build Status"></a>
|
||||
<a href="https://packagist.org/packages/laravel/framework"><img src="https://img.shields.io/packagist/dt/laravel/framework" alt="Total Downloads"></a>
|
||||
<a href="https://packagist.org/packages/laravel/framework"><img src="https://img.shields.io/packagist/v/laravel/framework" alt="Latest Stable Version"></a>
|
||||
<a href="https://packagist.org/packages/laravel/framework"><img src="https://img.shields.io/packagist/l/laravel/framework" alt="License"></a>
|
||||
</p>
|
||||
A comprehensive job aggregator platform built with Laravel 13 that fetches, stores, and displays job listings from multiple free job APIs.
|
||||
|
||||
## Requirements
|
||||
|
||||
- **PHP**: 8.3.x or higher
|
||||
- **MySQL**: 8.0+ or MariaDB 10.3+
|
||||
- **Composer**: 2.x
|
||||
- **Node.js**: 18.x or 20.x
|
||||
- **Redis**: 6.x+ (for caching and queues)
|
||||
|
||||
## Features
|
||||
|
||||
### Core Functionality
|
||||
- **Multi-Source Job Aggregation**: Fetch jobs from multiple APIs
|
||||
- **Advanced Search & Filtering**: Full-text search, location, job type, experience level, salary range
|
||||
- **Smart Deduplication**: Automatic detection and removal of duplicate listings
|
||||
- **Job Enrichment**: Auto-categorization, geocoding, salary normalization
|
||||
- **Real-time Analytics**: Track job views, searches, and user engagement
|
||||
|
||||
### SEO & Marketing
|
||||
- **Dynamic Meta Tags**: Job-specific title, description, and keywords
|
||||
- **Structured Data**: Schema.org JobPosting markup for Google Jobs integration
|
||||
- **XML Sitemaps**: Automatic sitemap generation for search engines
|
||||
- **Social Sharing**: Open Graph and Twitter Card support
|
||||
- **Mobile-First**: Responsive design optimized for all devices
|
||||
|
||||
### Performance
|
||||
- **Redis Caching**: Aggressive caching strategy for fast page loads
|
||||
- **Database Optimization**: Proper indexing and query optimization
|
||||
- **Queue Processing**: Background job processing for API fetching
|
||||
- **Asset Optimization**: Minified CSS/JS with lazy loading
|
||||
|
||||
### Monitoring & Analytics
|
||||
- **API Metrics**: Track success rates, response times, errors
|
||||
- **User Analytics**: Popular searches, viewed jobs, click-through rates
|
||||
- **Admin Dashboard**: Real-time monitoring and statistics
|
||||
- **Error Tracking**: Comprehensive logging and error handling
|
||||
|
||||
## Installation
|
||||
|
||||
### Development Setup
|
||||
|
||||
1. **Clone the repository**
|
||||
```bash
|
||||
git clone <repository-url>
|
||||
cd jobifygarden
|
||||
```
|
||||
|
||||
2. **Install dependencies**
|
||||
```bash
|
||||
composer install
|
||||
npm install
|
||||
```
|
||||
|
||||
3. **Configure environment**
|
||||
```bash
|
||||
cp .env.example .env
|
||||
php artisan key:generate
|
||||
```
|
||||
|
||||
4. **Update `.env` with your database credentials**
|
||||
```env
|
||||
DB_CONNECTION=mysql
|
||||
DB_HOST=127.0.0.1
|
||||
DB_PORT=3306
|
||||
DB_DATABASE=jobifygarden
|
||||
DB_USERNAME=your_username
|
||||
DB_PASSWORD=your_password
|
||||
```
|
||||
|
||||
5. **Run migrations**
|
||||
```bash
|
||||
php artisan migrate
|
||||
```
|
||||
|
||||
6. **Seed the database (optional)**
|
||||
```bash
|
||||
php artisan db:seed
|
||||
```
|
||||
|
||||
7. **Build frontend assets**
|
||||
```bash
|
||||
npm run dev
|
||||
```
|
||||
|
||||
8. **Start the development server**
|
||||
```bash
|
||||
php artisan serve
|
||||
```
|
||||
|
||||
Visit `http://localhost:8000` to view the application.
|
||||
|
||||
### Docker Setup (Laravel Sail)
|
||||
|
||||
```bash
|
||||
# Install dependencies
|
||||
composer install
|
||||
|
||||
# Start Docker containers
|
||||
./vendor/bin/sail up -d
|
||||
|
||||
# Run migrations
|
||||
./vendor/bin/sail artisan migrate
|
||||
|
||||
# Build assets
|
||||
./vendor/bin/sail npm install
|
||||
./vendor/bin/sail npm run dev
|
||||
```
|
||||
|
||||
## Production Deployment
|
||||
|
||||
See [DEPLOYMENT.md](DEPLOYMENT.md) for detailed production deployment instructions.
|
||||
|
||||
## Available Commands
|
||||
|
||||
### Job Management
|
||||
```bash
|
||||
# Fetch jobs from all sources
|
||||
php artisan jobs:fetch
|
||||
|
||||
# Clean expired jobs
|
||||
php artisan jobs:clean
|
||||
|
||||
# Remove duplicate jobs
|
||||
php artisan jobs:deduplicate
|
||||
|
||||
# Enrich job data (categories, experience levels)
|
||||
php artisan jobs:enrich
|
||||
|
||||
# Test API integrations
|
||||
php artisan jobs:test-apis
|
||||
```
|
||||
|
||||
### Database Optimization
|
||||
```bash
|
||||
# Optimize database tables and rebuild indexes
|
||||
php artisan db:optimize
|
||||
```
|
||||
|
||||
### Cache Management
|
||||
```bash
|
||||
# Clear all caches
|
||||
php artisan cache:clear
|
||||
php artisan config:clear
|
||||
php artisan route:clear
|
||||
php artisan view:clear
|
||||
|
||||
# Build caches for production
|
||||
php artisan config:cache
|
||||
php artisan route:cache
|
||||
php artisan view:cache
|
||||
```
|
||||
|
||||
## Project Structure
|
||||
|
||||
```
|
||||
app/
|
||||
├── Console/Commands/ # Artisan commands
|
||||
├── Http/Controllers/ # Web and API controllers
|
||||
├── Models/ # Eloquent models
|
||||
├── Repositories/ # Data access layer
|
||||
├── Services/ # Business logic
|
||||
└── Traits/ # Reusable traits
|
||||
|
||||
database/
|
||||
├── migrations/ # Database migrations
|
||||
└── seeders/ # Database seeders
|
||||
|
||||
resources/
|
||||
├── views/ # Blade templates
|
||||
├── js/ # JavaScript files
|
||||
└── css/ # CSS files
|
||||
|
||||
routes/
|
||||
├── web.php # Web routes
|
||||
└── api.php # API routes
|
||||
```
|
||||
|
||||
## API Endpoints
|
||||
|
||||
### Public API
|
||||
```
|
||||
GET /api/jobs # List jobs with filters
|
||||
GET /api/jobs/{id} # Get job details
|
||||
GET /api/categories # List categories
|
||||
GET /api/jobs/autocomplete/titles # Title autocomplete
|
||||
GET /api/jobs/autocomplete/locations # Location autocomplete
|
||||
GET /api/jobs/autocomplete/companies # Company autocomplete
|
||||
```
|
||||
|
||||
## Technology Stack
|
||||
|
||||
### Backend
|
||||
- **Laravel 13**: PHP framework
|
||||
- **MySQL 8**: Primary database
|
||||
- **Redis**: Caching and queues
|
||||
- **Guzzle**: HTTP client for API requests
|
||||
|
||||
### Frontend
|
||||
- **Blade Templates**: Server-side rendering
|
||||
- **Alpine.js**: Lightweight JavaScript framework
|
||||
- **TailwindCSS**: Utility-first CSS framework
|
||||
- **Vite**: Frontend build tool
|
||||
|
||||
## License
|
||||
|
||||
This project is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).
|
||||
|
||||
---
|
||||
|
||||
## About Laravel
|
||||
|
||||
|
||||
Reference in New Issue
Block a user