https://github.com/rokde/laravel-chat-application
Laravel Chat Application with support of reverb for live chatting possibilities
https://github.com/rokde/laravel-chat-application
Last synced: 3 months ago
JSON representation
Laravel Chat Application with support of reverb for live chatting possibilities
- Host: GitHub
- URL: https://github.com/rokde/laravel-chat-application
- Owner: rokde
- License: mit
- Created: 2024-06-18T17:01:12.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-08-05T07:17:59.000Z (almost 2 years ago)
- Last Synced: 2025-06-16T07:04:12.659Z (about 1 year ago)
- Language: Vue
- Size: 732 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# Laravel Chat Application
This should be a reference chat application. I want to learn how to do that :)
Come and learn with me. I will commit every single step going forward.
## Features
### Friendship
A user can have friends. But he had to ask. So first he requests a friendship and the other user can accept or revoke.
We have Actions to handle friendship between users.
You can only chat with friends.
### Chat
We can have chats. On your own, or with friends. So create a chat.
In a chat we can send messages. From one participant to the others. Empty messages can have attachments in the future.
So you can just send an attachment. We want to add reactions and replies as well.
### Realtime collaboration
We use the event and the notification sending through the websocket.
You have to start several commands locally to make that happen:
- `php artisan serve` to start your webservice
- `npm run dev` optional, but building assets can be important
- `php reverb:start [--debug]` to start websocket with reverb
- `php queue:listen` to start queue worker, because all events and notifications will be send via queue (you can run
queue:work as well, but queue:listen restarts automatically on php changes)
After having this running open two different browsers (or incognito window) and meet in the same chat.
#### Typing indicator
If you open two or more independent browser windows, you can meet in a chat and start typing. The other participants
will see the typing notification.
#### Online status
We display online or offline status via presence channel.
## Local development
start local server in one console
```bash
php artisan serve
```
Then open your browser with http://localhost:8000.
Mail is configured for log -> you can register and verify your email by opening
the [log file](./storage/logs/laravel.log) and clicking the link.
Building assets, open a new console and run
```bash
npm run dev
```
Adding new ui components from shadcn-vue:
```bash
npx shadcn-vue@latest add
```
## Dependencies
### Frontend
- [Day.js](https://day.js.org/docs/en/installation/installation) for displaying dates in the ui
- [shadcn-vue](https://www.shadcn-vue.com/docs/introduction.html) for ui components
- [Vue3 Emoji Picker](https://github.com/delowardev/vue3-emoji-picker)
- [Headless UI Popover](https://headlessui.com/v1/vue/popover)