# Tour Booking Project Setup

## Overview

This Laravel project uses the Stancl multitenancy package to handle multi-tenant applications. The configuration is set up with central routes in `web.php` and tenant-specific routes in `tenant.php`.

## Local Setup

Follow these steps to set up the project locally:

### Prerequisites

- PHP 8.0 or higher
- Composer
- Node.js and npm

### Clone the Repository

```bash
git clone git@github.com:navigatormm/tour-booking-sass.git
cd tour-booking-sass
```

### Install Dependencies

Install PHP dependencies using Composer:

```bash
composer install
```

Install JavaScript dependencies using npm:

```bash
npm install
```

### Set Up Environment

Copy the example environment file and update the environment variables:

```bash
cp .env.example .env
```

Generate the application key:

```bash
php artisan key:generate
```

### Configure Database

Update your `.env` file with the database credentials

### Run Migrations

Run the database migrations to set up the schema:

```bash
php artisan migrate
```

### Tenant Configuration

- **Central Routes:** Defined in `routes/web.php`
- **Tenant Routes:** Defined in `routes/tenant.php`

### Seed the Database (Optional)

If you have seed data, you can populate the database using:

```bash
php artisan db:seed
```

```bash
php artisan tenants:seed
```

### Start the Development Server

Run the Laravel development server:

```bash
php artisan serve
```

### Commit Message Prefixes

- **`feat:`** (Feature) - Use this prefix when adding new features or functionalities.
  - *Example:* `feat: add user profile page`

- **`fix:`** (Bug Fix) - Use this prefix when fixing bugs or issues.
  - *Example:* `fix: resolve issue with login validation`

- **`docs:`** (Documentation) - Use this prefix for changes to the documentation or comments.
  - *Example:* `docs: update README with setup instructions`

- **`style:`** (Code Style) - Use this prefix for changes that do not affect the meaning of the code (e.g., formatting, missing semicolons).
  - *Example:* `style: format code with Prettier`

- **`refactor:`** (Code Refactoring) - Use this prefix for code changes that neither fix a bug nor add a feature but improve the code structure.
  - *Example:* `refactor: simplify user authentication logic`

- **`perf:`** (Performance) - Use this prefix for changes that improve performance.
  - *Example:* `perf: optimize database queries`

- **`test:`** (Tests) - Use this prefix for adding or modifying tests.
  - *Example:* `test: add unit tests for user service`

- **`chore:`** (Chore) - Use this prefix for routine tasks and maintenance that don't affect the application’s functionality (e.g., build process, dependencies).
  - *Example:* `chore: update dependency versions`

- **`ci:`** (Continuous Integration) - Use this prefix for changes related to CI configuration files and scripts.
  - *Example:* `ci: update GitHub Actions workflow`

- **`build:`** (Build) - Use this prefix for changes that affect the build system or external dependencies.
  - *Example:* `build: add Webpack configuration`

- **`revert:`** (Revert) - Use this prefix when reverting a previous commit.
  - *Example:* `revert: undo changes to user profile page`

### Ownership

This project ownership goes to Navigator.


<!-- Security scan triggered at 2025-09-02 05:12:20 -->

<!-- Security scan triggered at 2025-09-09 05:47:36 -->

<!-- Security scan triggered at 2025-09-28 15:57:21 -->