PHPackages                             vcmeet/laravel-jitsi - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. vcmeet/laravel-jitsi

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

vcmeet/laravel-jitsi
====================

Meeting management package extracted from Laravel application

01PHP

Since Apr 9Pushed 2mo agoCompare

[ Source](https://github.com/furqanmax/laravel-jitsi)[ Packagist](https://packagist.org/packages/vcmeet/laravel-jitsi)[ RSS](/packages/vcmeet-laravel-jitsi/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependenciesVersions (1)Used By (0)

Laravel Jitsi Package
=====================

[](#laravel-jitsi-package)

A Laravel package for managing Jitsi meetings with participants, scheduling, and real-time status tracking. Extracted from a production Laravel application for easy integration into any Laravel project.

Requirements
------------

[](#requirements)

- PHP 8.1+
- Laravel 10.0+ or 11.0+
- MySQL/PostgreSQL/SQLite database

Installation
------------

[](#installation)

### Via Composer (Recommended)

[](#via-composer-recommended)

```
composer require vcmeet/laravel-jitsi
```

### Local Development

[](#local-development)

Add this to your host app's `composer.json`:

```
"repositories": [
    {
        "type": "path",
        "url": "./packages/vcmeet/laravel-jitsi",
        "options": { "symlink": true }
    }
]
```

Then run:

```
composer require vcmeet/laravel-jitsi:@dev
```

Configuration
-------------

[](#configuration)

### 1. Publish the configuration file:

[](#1-publish-the-configuration-file)

```
php artisan vendor:publish --tag=laravel-jitsi-config
```

This creates `config/meeting.php` where you can customize:

- Default meeting duration
- Meeting code length
- Participant statuses
- Model references

### 2. Publish the migration files:

[](#2-publish-the-migration-files)

```
php artisan vendor:publish --tag=laravel-jitsi-migrations
```

### 3. Run the migrations:

[](#3-run-the-migrations)

```
php artisan migrate
```

### 4. (Optional) Publish views for customization:

[](#4-optional-publish-views-for-customization)

```
php artisan vendor:publish --tag=laravel-jitsi-views
```

Usage
-----

[](#usage)

### Creating a Meeting

[](#creating-a-meeting)

```
use VcMeet\Jitsi\Models\Meeting;
use Illuminate\Support\Str;

// Create a new meeting
$meeting = Meeting::create([
    'code' => Str::random(10),
    'host_id' => auth()->id(),
    'start_time' => now()->addMinutes(15), // Optional: schedule for future
    'duration_minutes' => 60
]);

// Access meeting properties
echo $meeting->code; // Random 10-character code
echo $meeting->host_id; // Host user ID
echo $meeting->participants; // Related participants
```

### Managing Participants

[](#managing-participants)

```
use VcMeet\Jitsi\Models\MeetingParticipant;

// Add a participant to a meeting
$participant = MeetingParticipant::create([
    'meeting_id' => $meeting->id,
    'user_id' => $userId,
    'status' => 'waiting' // waiting, approved, or kicked
]);

// Update participant status
$participant->status = 'approved';
$participant->save();

// Check participant status
if ($participant->status === 'approved') {
    // User can join the meeting
}
```

### Available Routes

[](#available-routes)

The package provides the following routes (all require authentication):

MethodURINameDescriptionGET/POST`/meeting/create``meeting.create`Create a new meetingGET`/meeting/{code}``meeting.join`Join a meeting by codePOST`/meeting/{code}/approve``meeting.approve`Approve a participantPOST`/meeting/{code}/kick``meeting.kick`Kick a participantGET`/meeting/{id}/ended``meeting.ended`Meeting ended pageGET`/meeting/{code}/time-remaining`-Get remaining time (JSON API)GET`/meetings``meetings.index`List all meetings### Using the Facade

[](#using-the-facade)

```
use VcMeet\Jitsi\Facades\Jitsi;

// Access configuration
$defaultDuration = config('meeting.default_duration_minutes'); // 60
$codeLength = config('meeting.code_length'); // 10
```

### Real-time Time Tracking

[](#real-time-time-tracking)

The package includes a JavaScript-based timer that syncs with the server:

```
// The join.blade.php view includes a timer that:
// 1. Fetches remaining time from `/meeting/{code}/time-remaining`
// 2. Updates every second with server time
// 3. Shows warnings when time is running out
// 4. Automatically redirects when meeting ends
```

Testing
-------

[](#testing)

### Running Tests

[](#running-tests)

```
# From the package directory
./vendor/bin/phpunit

# With coverage
./vendor/bin/phpunit --coverage-html build/coverage
```

### Test Structure

[](#test-structure)

- `tests/Feature/MeetingTest.php` - Feature tests for routes and functionality
- `tests/Unit/MeetingModelTest.php` - Unit tests for models
- `tests/TestCase.php` - Base test case with Testbench setup

Available Artisan Commands
--------------------------

[](#available-artisan-commands)

The package doesn't include custom commands yet, but you can use standard Laravel commands:

```
# Run migrations
php artisan migrate

# Publish package files
php artisan vendor:publish --tag=laravel-jitsi-config
php artisan vendor:publish --tag=laravel-jitsi-migrations
php artisan vendor:publish --tag=laravel-jitsi-views
```

Configuration Options
---------------------

[](#configuration-options)

Edit `config/meeting.php` after publishing:

```
return [
    'default_duration_minutes' => 60,  // Default meeting duration
    'code_length' => 10,               // Length of meeting codes
    'participant_statuses' => [
        'waiting',
        'approved',
        'kicked'
    ],
    'meeting_model' => \VcMeet\Jitsi\Models\Meeting::class,
    'participant_model' => \VcMeet\Jitsi\Models\MeetingParticipant::class,
];
```

Contributing
------------

[](#contributing)

1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Add tests for new functionality
5. Run the test suite
6. Submit a pull request

License
-------

[](#license)

MIT License - see LICENSE file for details.

Changelog
---------

[](#changelog)

### 1.0.0

[](#100)

- Initial release
- Meeting management functionality
- Participant approval system
- Real-time time tracking
- Full test coverage
- Laravel auto-discovery support

###  Health Score

19

—

LowBetter than 10% of packages

Maintenance58

Moderate activity, may be stable

Popularity1

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity11

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/7431df46abe12761f06b693d170267105a526f657ab56dddcd650d559550385b?d=identicon)[furqanmax](/maintainers/furqanmax)

---

Top Contributors

[![furqanbiz](https://avatars.githubusercontent.com/u/139744224?v=4)](https://github.com/furqanbiz "furqanbiz (3 commits)")

### Embed Badge

![Health badge](/badges/vcmeet-laravel-jitsi/health.svg)

```
[![Health](https://phpackages.com/badges/vcmeet-laravel-jitsi/health.svg)](https://phpackages.com/packages/vcmeet-laravel-jitsi)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
