Setup & Installation
Complete guide to setting up the ZÈYA API backend for development.
Prerequisites
- PHP 8.1 or higher
- Composer
- MySQL/PostgreSQL
- Redis
- MongoDB (optional, for product search)
- AWS S3 account
- Firebase project
- Node.js & NPM (for asset compilation)
Installation Steps
1. Clone Repository
cd api
2. Install Dependencies
# Install PHP dependencies
composer install
# Install frontend dependencies (if needed)
npm install
3. Environment Configuration
# Copy environment file
cp .env.example .env
# Generate application key
php artisan key:generate
# Generate JWT secret
php artisan jwt:secret
4. Configure Database
Edit .env file with your database credentials:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=zeya
DB_USERNAME=root
DB_PASSWORD=
5. Run Migrations
# Run migrations
php artisan migrate
# Seed database (optional)
php artisan db:seed
6. Build Assets (if needed)
npm run build
7. Start Development Server
php artisan serve
The API will be available at http://localhost:8000
Environment Configuration
See Environment Configuration for complete environment variables reference.
Additional Setup
Queue Workers
For development, run queue workers:
php artisan queue:work
Redis Setup
Ensure Redis is running:
# Check Redis status
redis-cli ping
MongoDB Setup (Optional)
If using MongoDB for product search:
# Install MongoDB extension
pecl install mongodb
# Add to php.ini
extension=mongodb.so
Verification
Health Check
curl http://localhost:8000/api/health
Expected response:
{
"status": "healthy",
"timestamp": "2024-12-18T10:00:00.000000Z"
}
Test Authentication
# Register a test user
curl -X POST http://localhost:8000/api/v1/register \
-H "Content-Type: application/json" \
-d '{
"email": "test@example.com",
"password": "password123",
"name": "Test User"
}'
Troubleshooting
Common Issues
Issue: Class 'PDO' not found
- Solution: Install PHP PDO extension:
sudo apt-get install php-pdo
Issue: JWT secret not set
- Solution: Run
php artisan jwt:secret
Issue: Redis connection refused
- Solution: Start Redis server:
redis-server
Issue: MongoDB connection failed
- Solution: Ensure MongoDB is running and credentials are correct in
.env
Permissions
Ensure storage directories are writable:
chmod -R 775 storage bootstrap/cache
Next Steps
- Read Architecture to understand the project structure
- Check Development Guide for development workflow
- Review API Endpoints for API usage