A project that implements sending and receiving of Webhooks between 2 laravel apps (Server & Client).
The server (api) schedules a job and sends data to the client app (client) through a webhook. When the webhook is received on the client-side app, it processes the request using a job.The job then sends a notification to the user and broadcasts an event using Pusher channels. Finally, the event is captured by Laravel Echo which then provides the necessary data to be updated on the Vue JS frontend in real-time.
You can read more into detail on what the packages do here:
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
* node 15.5.1 or latest
* npm 7.6.0 or latest
* composer 2.1.5 or latest
A step by step series on how to get a development env running.
Open Terminal / Command Prompt and type:
git clone https://github.com/vamuigua/webhook-machine.git
Then change your directory to the project you have cloned
cd webhook-machine
The project includes two laravel applications: a server-side & client-side app. In both apps, follow the steps below to get the project up and running:
cd <api/client>
composer install
npm install
npm run dev
touch .env
php -r "file_exists('.env') || copy('.env.example', '.env');"
php artisan key:generate
php artisan migrate --seed
php artisan serve
Your done...The app should now be running on your browser 👍
- Laravel, for processing Scheduled Jobs and Broadcasting Notifications
- Vue JS, for Reactive UI Components on the client app
- Pusher, for broadcasting events
- Laravel Echo, for subscribing to channels and listening for events
- Spatie's Laravel Webhook Server, for sending webhooks
- Spatie's Laravel Webhook Client, for receiving webhooks
- Victor Allen - vamuigua ✌️
This project is licensed under the MIT License - see the LICENSE file for details