Barta is a dynamic social application built with Laravel, designed to enable seamless user interaction through posts, comments, and likes. With a focus on performance and usability, Barta provides real-time updates, advanced search capabilities, and comprehensive user profile management.
- User Authentication & Authorization: Secure login, registration, and email verification.
- Post Creation (Barta): Users can create posts with optional photos.
- Nested Commenting System: Two-level replies to enhance discussions.
- Redis-Powered Like System: Efficient and scalable implementation for likes.
- Real-Time Notifications: Powered by Laravel Reverb for in-app and email notifications.
- Profile Picture Management: Upload and update avatars with automatic deletion of old ones.
- User Profiles: View personal profiles or explore others' profiles, complete with post summaries and statistics.
- Search Functionality: Find users or bartas using usernames, full names, or post titles.
- Full-Image View: Show full-sized images on post detail pages.
- Optimized Query Handling: Designed to reduce database queries for faster performance.
- Infinite Scrolling: Load posts and comments dynamically with enhanced performance.
- Seamless CRUD Operations: All create, read, update, and delete actions are implemented without page reloads.
- Real-Time Updates: Automatic datetime updates without requiring a refresh.
- Image Management: Edit, update, and upload images with live previews.
- Backend: Laravel 11.x, Redis, Laravel Reverb for Websockets
- Frontend: Livewire, TailwindCSS
- Queue Handling: database-powered queue workers for stability
- Ensure a Redis server is running locally or in your production environment.
- Configure a mail server (e.g., Mailpit for local or SMTP for production) for email verification.
- Clone the repository
git clone https://github.com/RoyHridoy/barta.git
cd barta- Install dependencies
composer install
npm install- Configure environment variables
cp .env.example .env
php artisan key:generate- Configure
.env
- Update database settings.
- Set
REDIS_CLIENTto eitherpredisorphpredis
REDIS_CLIENT=predis
# or
REDIS_CLIENT=phpredis- Configure mail settings.
- Run migrations and seed the database:
php artisan migrate
php artisan db:seed- Set up storage:
php artisan storage:link- Start the development server:
php artisan serve- Start asset compilation:
npm run dev- Start Services:
# Install and start Laravel Reverb for Websockets
php artisan reverb:install
php artisan reverb:start
# Start the queue worker
php artisan queue:workAfter seeding the database, you can log in with the following credentials:
- Email:
[email protected] - Password:
password
- Redis Client: Ensure predis or phpredis is installed and configured.
- Mail Server: A running mail server is necessary for user email verification.
Contributions are welcome! Feel free to fork the repository and create a pull request with your improvements.