A feature-rich, real-time communication platform built with Laravel, React, and TypeScript, providing seamless user interactions, messaging, and file sharing capabilities.
- User Authentication: Secure user registration, login, and password management.
- Real-time Messaging: Instantaneous message delivery for both direct messages and group chats.
- File Sharing: Support for uploading and sharing various file types within conversations.
- User Profiles: Comprehensive user profiles with editable information.
- Real-time Notifications: Instant updates for new messages and other relevant events.
- Group Chats: Functionality to create and manage group conversations.
- Admin Capabilities: Role-based access control with administrative privileges for user management.
- User Blocking: Ability to block or unblock other users to manage interactions.
- Docker Integration: Streamlined setup and deployment using Docker and Docker Compose.
- Backend: Laravel (PHP)
- Frontend: React, TypeScript, Vite
- Real-time: Laravel Reverb, Pusher
- Database: MySQL
- Caching & Queues: Redis
- Styling: Tailwind CSS, DaisyUI
- Containerization: Docker, Docker Compose
- Build Tool: Vite
- State Management: Inertia.js
Follow these steps to set up the project locally:
-
Clone the Repository:
git clone https://github.com/Bharatdwaj3/Moi Koe.git cd Moi Koe -
Install Dependencies:
-
PHP Dependencies:
composer install
-
Node.js Dependencies:
npm install
or
pnpm install
-
-
Environment Configuration: Copy the example environment file and fill in your specific database and Reverb credentials:
cp .env.example .env
Edit the
.envfile with your database connection details (DB_DATABASE,DB_USERNAME,DB_PASSWORD), Reverb credentials (REVERB_APP_KEY,REVERB_APP_SECRET,REVERB_APP_ID), and other necessary configurations. -
Database Setup: Run the database migrations to set up the necessary tables:
php artisan migrate
-
Seeders (Optional): To populate the database with initial data (users, groups, messages), run:
php artisan db:seed
-
Asset Building: Compile frontend assets using Vite:
npm run dev
or
pnpm dev
-
Application Server: Start the Laravel development server:
php artisan serve
-
Dockerized Setup (Recommended): For a fully containerized experience, use Docker Compose:
docker compose up -d
Once the application is running, you can:
- Register/Login: Access the application via your browser (typically
http://localhost:8000or the port specified in your.envfile) and register a new account or log in with existing credentials. - Navigate Conversations: Use the sidebar to select a user or group conversation.
- Send Messages: Type messages in the input field and press Enter or click the send button. Attachments can be added using the paperclip icon.
- Manage Groups (Admin): Group owners can access settings via the cog icon in the conversation header to manage group names, descriptions, and members.
- Admin Actions: Administrators can add new users, toggle administrative privileges, and block/unblock users from the relevant sections.
This project is licensed under the MIT License.
Project: Moi Koe
URL: [https://github.com/Bharatdwaj3/Moi Koe](https://github.com/Bharatdwaj3/Moi Koe)
Author: Bharatdwaj3