/tweety

Full stack Laravel and Vue Example App

Primary LanguagePHP

Build Status

Tweety

This is the repository for the "Laravel From Scratch" final project at Laracasts with extended functionalities. Original repository can be found here.

Installation

Prerequisites

  • 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.

Step 1

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

Instant Search

  • 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

Real-time Chat

  • 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

Step 2

Next, boot up a server and visit Tweety. If you are using Laravel Valet, the URL will default to http://tweety.test.

Extended Functionalities

  1. Dynamic profile banner image and description for each user.
  2. The ability to attach an image when publishing a tweet.
  3. The ability to toggle a like.
  4. Pop-up flash messages.
  5. Interactivity with Vuejs.
  6. Display the number of remaining characters allowed when writing a new tweet.
  7. Allow tweets to be deleted.
  8. Mentions and notifications.
  9. Two level nested replies.
  10. Instant search with algolia
  11. Real-time chat with Pusher and Laravel WebSockets.

Mobile App

Mobile App for Tweety written in Flutter can be found here.