

I was looking for a small application idea to finally test Laravel Zero.
I decided to create something to track cryptocurrency Twitter accounts and to detect trends (and offer alerts on this data on Cryptalert).
So we will create a Laravel Zero application and integrate /laravel-console-dusk, a custom version of Laravel Dusk for Laravel Zero, to easily track the evolution of twitter accounts.
Laravel Zero was created by, and is maintained by Nuno Maduro, and is a micro-framework that provides an elegant starting point for your console application. It is an unofficial and customized version of Laravel optimized for building command-line applications.
Laravel Dusk is a powerful browser automation tool for Laravel. With Dusk you can programmatically test your own applications or visit any website on the internet using a Chrome browser. Dusk can help you to automate repetitive tasks or scrape information from other websites for example.
NBΒ : I discovered the work of Nuno during a meetup at Algolia in November 2018, he did an incredible job for the Laravel community, follow him here: https://twitter.com/enunomaduro
Letβs start by installing Laravel Zero by following the documentation: https://laravel-zero.com/docs/installation/
composer create-project β prefer-dist laravel-zero/laravel-zero laravel-zero-dusk
Then install Laravel Dusk:
cd laravel-zero-dusk
php laravel-zero-dusk app:install console-dusk
We will store our data in a database, in Laravel Zero the Laravelβs Eloquent component is an add-on. We can install it like that:
php laravel-zero-dusk app:install database
Remember to change the credentials of your database in the config/database.php file.
We will create 2 tables to store our data:
So we create 2 migrations:
php laravel-zero-dusk make:migration twitter_account_table
With this content:
And:
php laravel-zero-dusk make:migration twitter_account_data_table
With this content:
We then create a Seeder to add the first accounts in the twitter_account table:
php laravel-zero-dusk make:seeder TwitterAccountSeeder
With this content:
We run our seeder:
php laravel-zero-dusk db:seed --class=TwitterAccountSeeder
Here we just add 4 twitter handles in our twitter_account table. You can do this with basic SQL requests or https://github.com/intonate/tinker-zero (a bridge that allows using laravel/tinker in Laravel Zero applications).
Commands in Laravel Zero are explained here: https://laravel-zero.com/docs/commands/
Itβs very similar to the commands of Laravel: https://laravel.com/docs/5.7/artisan#writing-commands
Create a new command named GetTwitterData:
php laravel-zero-dusk make:command GetTwitterData
Here is the code of the command (See details below):
So what are we doing here?
We just have to test our command:
php laravel-zero-dusk insert:twitter_data
If all goes well you should see this in your console:
You can easily automate this command using Cron: https://laravel-zero.com/docs/task-scheduling/
In the code of my GetTwitterData command I have:
public function schedule(Schedule $schedule)
{
$schedule->command(static::class)->everyThirtyMinutes();
}
So my command will run every 30 minutes βπ»
The code is available here: https://github.com/MartinRdw/laravel-zero-dusk
Feel free to ask me your questions/bug reports in the comment section π
Create your free account to unlock your custom reading experience.