Written on Laravel
- Blog and admin parts
- Login and registration
- Validation
- Profile page
- Posts management
- Comments
- Follow/unfollow system
- Likes system
- Ajax requests
- Sorting
- Websockets:
- Notifications
- Admin panel:
- CRUD posts/comments/categories
- Publish/unpublish posts/comments/postcategories
- Clone repo and install all dependencies:
composer install
npm i
npm run dev
or npm run prod
, depends on what environment you're on.
Make sure you created .env cp .env.example .env
,
and generate laravel app key php artisan key:generate
.
- Create database and set corresponds properties in .env:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=notes
DB_USERNAME=
DB_PASSWORD=
- Populate db with migrations and seeds:
php artisan migrate --seed
- We use beyondcode/laravel-websockets for notification system, for that we need to set next .env variables:
BROADCAST_DRIVER=pusher
- Set Pusher's (Pusher Channels broadcaster) properties (it does not matter what you set as your PUSHER_ variables, just make sure they are unique for each project):
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=
- Set your SSL certificates paths(for HTTPS scheme):
LARAVEL_WEBSOCKETS_SSL_LOCAL_CERT=
LARAVEL_WEBSOCKETS_SSL_LOCAL_PK=
- Once we have configured our WebSocket apps and Pusher settings, we can start the Laravel WebSocket server by issuing the artisan command:
php artisan websockets:serve
- Finally, start up the queue:
php artisan queue:work
- Laravel
- Mysql for db
- Redis for queues and jobs
- beyondcode/laravel-websockets for notifications system
- PHPFaker for seeds