Skip to content

This is a social media project where users can create, update, or delete their own posts, as well as like or save others' posts, among other various functionalities, every interesting aspects about this project, you can read in readme file.

Notifications You must be signed in to change notification settings

GeorgeKalandadze/Social-Media-web-Backend

Repository files navigation

Social Media Project


This is a social media project where users can create, update, or delete their own posts, make comments and replies on posts, as well as like or save others' posts, among other various functionalities. This is the backend side of the application, which is written in Laravel. The application includes features such as a real-time voting system using Broadcasting and Pusher, and Google OAuth with Laravel Socialite. Additionally, users receive real-time notifications when someone likes or comments on their posts. The frontend side's GitHub repository can be found here: https://github.com/GeorgeKalandadze/Social-Media-Web-Front.git

Features

  • Authentication: User Authentications system.
    • API Token Authentication: Securing API endpoints with Laravel Sanctum.
    • Manage Auth Functionality: Managed with Laravel Fortify.
  • Google OAuth: Users can sign in with their Google accounts.
  • Post Management: Users can create, update, and delete their own posts, also users can like and save posts created by others,make comments and replays on posts.
  • Real-Time Features: Real-time vote system implemented using Laravel Broadcasting and Pusher for immediate updates and interactions.
  • Event-Driven Architecture: Used for decoupling complex processes. For instance, events are fired when posts are liked or commented on, and corresponding listeners handle the processing.
  • Form Request Validation: Enhanced form request validation using Laravel form request Classes.
  • API Resources: Used for transforming and formatting API responses, providing a consistent structure for the API endpoints.
  • Seeders and Factories: Provide initial data for testing and development environments, Generate realistic fake data for models.

Used Packages And Docs

  • Sanctum: Securing API endpoints with Laravel Sanctum.
  • Laravel Fortify: A minimalistic authentication scaffolding for Laravel applications.
  • Laravel Socialite: A simple and fluent way to authenticate with OAuth providers in Laravel applications.
  • Broadcasting: Learn about broadcasting events in your Laravel application, allowing real-time communication between the server and connected clients.
  • Pusher Api: A service that provides real-time communication APIs to enable seamless collaboration and interactive experiences
  • Laravel Vote: A Laravel package for implementing a voting system in applications, allowing users to vote on content such as posts or comments

Project setup

git clone https://github.com/GeorgeKalandadze/Social-Media-web-Backend.git
cp .env.example .env
composer install
php artisan key:generate
php artisan migrate:fresh --seed
php artisan serve

And now you should provide .env file all the necessary environment variables:

MYSQL:

DB_CONNECTION=mysql

DB_HOST=127.0.0.1

DB_PORT=3306

DB_DATABASE=*

DB_USERNAME=*

DB_PASSWORD=*

Pusher:

ROADCAST_DRIVER=pusher

CACHE_DRIVER=file

FILESYSTEM_DISK=public

QUEUE_CONNECTION=sync

SESSION_DRIVER=file

PUSHER_APP_ID=*

PUSHER_APP_KEY=*

PUSHER_APP_SECRET=*

PUSHER_PORT=443

PUSHER_SCHEME=https

PUSHER_APP_CLUSTER=*

Frontend Side Github Project URL

https://github.com/GeorgeKalandadze/Social-Media-Web-Front

About

This is a social media project where users can create, update, or delete their own posts, as well as like or save others' posts, among other various functionalities, every interesting aspects about this project, you can read in readme file.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published