JCAT is a real-time ticketing system built with Laravel. It focuses on simplicity and instant communication —create a ticket, reply in threads, and get live updates with no page refresh. It’s built for speed, collaboration, and ease of use.
Key Technologies used:
- Laravel 12
- MySQL
- Redis
- Nginx
- Laravel Reverb & Echo (WebSockets)
- Docker + Docker Compose
- Alpine.js & Tailwind CSS
- PestPHP
Important
You must have Docker and Docker Compose installed on your machine.
- Clone the repository:
git clone https://github.com/benjamimWalker/just_create_a_ticket.git- Go to the project folder:
cd just_create_a_ticket- Prepare environment files:
cp .env.example .env- Build the containers:
docker compose up -d- Install composer dependencies:
docker compose exec app composer install- Run the migrations:
docker compose exec app php artisan migrate- Install npm dependencies:
docker compose run --rm npm install- Build the assets:
docker compose run --rm npm run build- You can now execute the tests:
docker compose exec app php artisan test- And finally, start reverb websocket server:
docker compose exec app php artisan reverb:startHead to the URL http://localhost/tickets
Click the "Create New Ticket" button and fill in the form. You can set a title, priority and status (default for open but you can create a closed for whatever reason)
Click on any ticket. You can see the ticket details and all replies. You can also create a new reply.
The main features of the application are:
- Real-time ticket threads with WebSocket-powered messaging
- Responsive, lightweight UI with Tailwind and Alpine
- Instant updates to connected users only (per-thread broadcasting)
- Status toggling (open/closed) with locked replies on closed tickets
- Automated tests with Pest. critical paths: creation, validation, messaging
[Benjamim] - [[email protected]]
Github: @benjamimWalker