This is the repository for the "Laravel From Scratch" final project at Laracasts with extended functionalities. Original repository can be found here.
- To run this project, you must have PHP 7 and above installed.
- You should setup a host on your web server for your local domain. For this you could also configure Laravel Homestead or Valet.
Begin by cloning this repository to your machine, and installing all Composer & NPM dependencies using the following commands.
git clone git@github.com:TunNandaAung/tweety.git
cd tweety && composer install && npm install
php artisan tweety:install
npm run dev
- For instant search, you need to create an account at algolia.
- Then, you have to reference your algolia app id and algolia secret key in your
.env
file as below.
ALGOLIA_APP_ID=YOUR_ALGOLIA_APP_ID
ALGOLIA_SECRET=YOUR_ALGOLIA_SECRET
MIX_ALGOLIA_APP_ID=YOUR_ALGOLIA_APP_ID
MIX_ALGOLIA_SECRET=YOUR_ALGOLIA_SECRET
- For real-time chat, you need to create an account at pusher.
- Then, you have to set your pusher credentials in
.env
file as below.
PUSHER_APP_ID=YOUR_PUSHER_APP_ID
PUSHER_APP_KEY=YOUR_PUSHER_APP_KEY
PUSHER_APP_SECRET=YOUR_PUSHER_APP_SECRET
PUSHER_APP_CLUSTER=YOUR_PUSHER_APP_CLUSTER
- The chat function is implemented using Laravel WebSockets package.
- Run the follwing command to start the websockets server.
php artisan websockets:serve
Next, boot up a server and visit Tweety. If you are using Laravel Valet, the URL will default to http://tweety.test
.
- Dynamic profile banner image and description for each user.
- The ability to attach an image when publishing a tweet.
- The ability to toggle a like.
- Pop-up flash messages.
- Interactivity with Vuejs.
- Display the number of remaining characters allowed when writing a new tweet.
- Allow tweets to be deleted.
- Mentions and notifications.
- Two level nested replies.
- Instant search with algolia
- Real-time chat with Pusher and Laravel WebSockets.
Mobile App for Tweety written in Flutter can be found here.