# Git Setup Script for Laravel Employee Engagement Platform

## Step 1: Initialize Git Repository
```bash
git init
```

## Step 2: Add Remote Repository
```bash
# Replace <your-repository-url> with your actual GitHub/GitLab repository URL
git remote add origin <your-repository-url>
```

## Step 3: Add Files to Git
```bash
# Add all files except those in .gitignore
git add .
```

## Step 4: Create Initial Commit
```bash
git commit -m "Initial commit: Laravel Employee Engagement Platform

Features:
- Multi-role authentication system
- Quiz management with automated scoring
- Challenge system with team participation
- Achievement & rewards gamification
- Certification tracking
- Department & team management
- Comprehensive Form Request validation
- Try-catch error handling on all operations
- Swagger API documentation
- Security best practices implemented"
```

## Step 5: Push to Repository
```bash
# Push to main branch
git push -u origin main

# Or if using master branch
git push -u origin master
```

## Additional Git Commands

### Check Status
```bash
git status
```

### View Commit History
```bash
git log --oneline
```

### Create and Switch to New Branch
```bash
git checkout -b feature/new-feature
```

### Push Changes to Existing Branch
```bash
git add .
git commit -m "Description of changes"
git push origin branch-name
```

### Pull Latest Changes
```bash
git pull origin main
```

## Important Notes

1. **Environment File**: The `.env` file is ignored and won't be uploaded to the repository for security reasons
2. **Vendor Directory**: The `/vendor/` directory is ignored as it contains Composer dependencies
3. **Storage Files**: Temporary files and logs in `/storage/` are ignored
4. **IDE Files**: Editor-specific files are ignored
5. **Dependencies**: Run `composer install` after cloning to install PHP dependencies

## Repository Structure After Upload

```
Employee-Engagement/
├── app/                    # Application logic
├── bootstrap/              # Framework bootstrap files
├── config/                 # Configuration files
├── database/              # Migrations, seeders, factories
├── public/                # Public assets
├── resources/             # Views, raw assets
├── routes/                # Route definitions
├── storage/               # Generated files (ignored in git)
├── tests/                 # Test files
├── vendor/                # Dependencies (ignored in git)
├── .gitignore            # Git ignore rules
├── composer.json         # PHP dependencies
├── README.md             # Project documentation
└── artisan               # Artisan command-line tool
```

## Security Considerations

- Never commit `.env` files to the repository
- Sensitive configuration should use environment variables
- Database credentials are kept in `.env` (ignored)
- API keys and secrets should be in environment variables