# Laravel Filament v2 Template

This is a template for a Laravel Filament v2 project that includes:

- Laravel 10.*
- Filament 2.*
- Filament Breezy
- Pest 2
- Laravel Actions
- Filament Export
- Filament Import
- Laravel Permission
- A Custom Theme
- Published Config Files

## Table of Contents

- [Usage](#usage)
- [Installation](#installation)
- [Packages](#packages)
- [Configuration](#configuration)
- [Customization](#customization)
- [Testing](#testing)
- [License](#license)

## Usage

To use this template, click on the "Use this template" button at the top of the repository page or [click here](https://github.com/skepsbv/filament-template/generate) to generate a new repository based on this template.

After creating your new repository, clone it to your local machine and follow the installation and configuration steps described in the [Installation](#installation) and [Configuration](#configuration) sections below.

## Installation

1. Clone the repository to your local machine:

   ```
   git clone https://github.com/username/repository.git
   ```
   
2. Create a copy of the `.env.example` file and rename it to `.env`:

    ```
    cp .env.example .env
    ```
    
3. Update the `.env` file.

4. Install the required dependencies and migrate the database:

   ```
   composer install
   npm install
   npm run build
   php artisan key:generate
   php artisan migrate
   ```
   
5. Optional: seed the database.
    ```
    php artisan migrate --seed
    ```

## Packages

This template includes several packages:

- [`jeffgreco13/filament-breezy`](https://github.com/jeffgreco13/filament-breezy): A package that adds login, registration, password reset, password confirmation, email verification, and a my profile page.
- [`pestphp/pest`](https://pestphp.com/docs/installation): A testing framework with a focus on simplicity.
- [`lorisleiva/laravel-actions`](https://laravelactions.com/): A package that enables the creation of reusable and testable actions in Laravel applications.
- [`alperenersoy/filament-export`](https://github.com/alperenersoy/filament-export): A package that adds the ability to export data from Filament.
- [`konnco/filament-import`](https://github.com/konnco/filament-import): A package that adds the ability to import csv data into Filament.
- [`spatie/laravel-permission`](https://github.com/spatie/laravel-permission): A package that allows you to manage user permissions and roles in a database.
- [`laravel/horizon`](https://laravel.com/docs/10.x/horizon): A package that provides a dashboard and code-driven configuration for your Laravel powered Redis queues.
- [`predis/predis`](https://github.com/predis/predis): A package that provides a flexible and feature-complete Redis client for PHP.

## Configuration

This template includes several published configuration files that you can customize:

- `filament-breezy.php`: Filament Breezy configuration.
- `filament.php`: Filament configuration.
- `pest.php`: Pest configuration.
- `filament-export.php`: Filament Export configuration.
- `filament-import.php`: Filament Import configuration.
- `permission.php`: Laravel Permission configuration.
- `horizon.php`: Laravel Horizon configuration.

## Customization

This template includes a custom theme that you can customize by modifying the files:

- `resources/css/filament.css`: This file has the css specific to the application.
- `tailwindcss.config.js`: This file contains the tailwind settings for the application.

## Testing

This template includes Pest 2 as the default testing framework. You can run the tests using the following command:

```
php artisan test
```

## License

This template is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).
