/epitwit

This project is a Twitter like real-time application with most of the original features.

Primary LanguagePHP


Epitwit logo

Epitwit.me

Real-time twitter like application
View Demo · Report Bug


🏗 Work in progress. We are currently experiencing some troubles with deployed websockets.


Table of Contents
  1. About The Project
  2. Getting Started
  3. Contact

About the project

Abstract

This project was made for an assignment from Epitech. The idea was to recreate the most common and basic features of Twitter.
Even if the database migration was generated via the laravel artisan helper, the all promo had to follow the same database structure. You can have a look at the common db here.

Notable features

  • Secured register and login
  • Real-time
    • timeline
    • messaging service
    • notifications
  • Update profile
  • Follow people/be followed back
  • Character limited tweet
  • Attach photographs to tweets
  • Tweet, like, retweet, retweet with quote
  • Mentions and hashtags
  • Search bar for user/hashtags

Built with

Backend Frontend Data Real-time
PHP VueJs MySQL Laravel Echo
Laravel Sass Pusher

Getting started

Prerequisites

Before starting, make sure you have these following installed on your machine.

  • Apache
  • PHP8
  • NPM
  • Composer
  • MySQL

Installation

Clone the repo in the html folder of Apache.

cd [...]/html
git clone git@github.com:theoprovost/epitwit.git

Create a MySQL database.

cd <project_folder>
mysql -u root -p < ./utils/create_database.sql

Then download dependencies from package.json and composer.json.

npm install && composer install
composer dump-autoload

Create a .env file based on the .env.example one with your credentials.

touch .env
nano .env
...

If everything is set up, you can now migrate the tables in your database.

php artisan migrate

Finally you can launch the project. 🚀

php artisan key:generate
sudo php artisan serve --host=127.0.0.1 --port=80
php artisan websockets:serve
npm run dev

Contact

This project was made possible thanks to Alexis, my project's partner.

Théo Provost @theoprovost - theoprovost@epitech.eu
Alexis Dandres @adrandes - dandresalexis@gmail.com