laravel-blog
laravel-blog copied to clipboard
Laravel 10.0 blog application with Hotwire, Horizon, Telescope, Sanctum, Breeze and Pusher
Laravel 9.0 blog
The purpose of this repository is to show good development practices on Laravel as well as to present cases of use of the framework's features like:
- Authentication
- API
- Token authentication
- API Resources
- Versioning
- Blade
- Broadcasting
- Cache
- Email Verification
- Filesystem
- Helpers
- Horizon
- Localization
- Migrations
- Policies
- Providers
- Requests
- Seeding & Factories
- Testing
- Homestead
Beside Laravel, this project uses other tools like:
- Bootstrap 4
- Pint
- Travis CI
- Font Awesome
- Hotwired
- Redis
- spatie/laravel-medialibrary
- tonysm/turbo-laravel
- Many more to discover.
Some screenshots
You can find some screenshots of the application on : https://imgur.com/a/Jbnwj
Installation
Development environment requirements :
Setting up your development environment on your local machine :
$ git clone https://github.com/guillaumebriday/laravel-blog.git
$ cd laravel-blog
$ cp .env.example .env
$ composer install
$ vagrant up
$ vagrant ssh
All following commands must be run inside the VM:
$ cd code
$ yarn install
$ artisan key:generate
$ artisan horizon:install
$ artisan telescope:install
$ artisan storage:link
Now you can access the application via http://localhost:8000.
There is no need to run php artisan serve
. PHP is already running in the dedicated virtual machine.
Before starting
You need to run the migrations with the seeds :
$ artisan migrate --seed
This will create a new user that you can use to sign in :
email: [email protected]
password: 4nak1n
And then, compile the assets :
$ yarn dev # or yarn watch
Starting job for newsletter :
$ artisan tinker
> PrepareNewsletterSubscriptionEmail::dispatch();
Useful commands
Seeding the database :
$ artisan db:seed
Running tests :
$ artisan test
Running Laravel Pint :
$ ./vendor/bin/pint --verbose --test
Generating backup :
$ artisan vendor:publish --provider="Spatie\Backup\BackupServiceProvider"
$ artisan backup:run
Generating fake data :
$ artisan db:seed --class=DevDatabaseSeeder
Discover package
$ artisan package:discover
In development environnement, rebuild the database :
$ artisan migrate:fresh --seed
Accessing the API
Clients can access to the REST API. API requests require authentication via token. You can create a new token in your user profile.
Then, you can use this token either as url parameter or in Authorization header :
# Url parameter
GET http://laravel-blog.app/api/v1/posts?api_token=your_private_token_here
# Authorization Header
curl --header "Authorization: Bearer your_private_token_here" http://laravel-blog.app/api/v1/posts
API are prefixed by api
and the API version number like so v1
.
Do not forget to set the X-Requested-With
header to XMLHttpRequest
. Otherwise, Laravel won't recognize the call as an AJAX request.
To list all the available routes for API :
$ artisan route:list --path=api
Contributing
Do not hesitate to contribute to the project by adapting or adding features ! Bug reports or pull requests are welcome.
License
This project is released under the MIT license.